fixed conflict
This commit is contained in:
@@ -0,0 +1,492 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'!langcode!': 'ca',
|
||||
'!langname!': 'Català',
|
||||
'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"actualizi" és una expressió opcional com "camp1=\'nou_valor\'". No es poden actualitzar o eliminar resultats de un JOIN',
|
||||
'%(nrows)s records found': '%(nrows)s registres trobats',
|
||||
'%s %%{position}': '%s %%{posició}',
|
||||
'%s %%{row} deleted': '%s %%{fila} %%{eliminada}',
|
||||
'%s %%{row} updated': '%s %%{fila} %%{actualitzada}',
|
||||
'%s selected': '%s %%{seleccionat}',
|
||||
'%Y-%m-%d': '%d/%m/%Y',
|
||||
'%Y-%m-%d %H:%M:%S': '%d/%m/%Y %H:%M:%S',
|
||||
'(something like "it-it")': '(similar a "això-això")',
|
||||
'@markmin\x01An error occured, please [[reload %s]] the page': 'Hi ha hagut un error, si us plau [[recarregui %s]] la pàgina',
|
||||
'@markmin\x01Number of entries: **%s**': "Nombre d'entrades: **%s**",
|
||||
'A new version of web2py is available': 'Hi ha una nova versió de wep2py disponible',
|
||||
'A new version of web2py is available: %s': 'Hi ha una nova versió de wep2py disponible: %s',
|
||||
'About': 'Sobre',
|
||||
'about': 'sobre',
|
||||
'About application': "Sobre l'aplicació",
|
||||
'Access Control': "Control d'Accés",
|
||||
'Add': 'Afegir',
|
||||
'Add Record': 'Afegeix registre',
|
||||
'additional code for your application': '`codi addicional per a la seva aplicació',
|
||||
'admin disabled because no admin password': 'admin inhabilitat per falta de contrasenya',
|
||||
'admin disabled because not supported on google app engine': 'admin inhabilitat, no és suportat en GAE',
|
||||
'admin disabled because unable to access password file': 'admin inhabilitat, impossible accedir al fitxer con la contrasenya',
|
||||
'Admin is disabled because insecure channel': 'Admin inhabilitat, el canal no és segur',
|
||||
'Admin is disabled because unsecure channel': 'Admin inhabilitat, el canal no és segur',
|
||||
'Administrative interface': 'Interfície administrativa',
|
||||
'Administrative Interface': 'Interfície Administrativa',
|
||||
'administrative interface': 'interfície administrativa',
|
||||
'Administrator Password:': 'Contrasenya del Administrador:',
|
||||
'Ajax Recipes': 'Receptes AJAX',
|
||||
'An error occured, please %s the page': 'Hi ha hagut un error, per favor %s la pàgina',
|
||||
'And': 'I',
|
||||
'and rename it (required):': 'i renombri-la (requerit):',
|
||||
'and rename it:': " i renombri'l:",
|
||||
'appadmin': 'appadmin',
|
||||
'appadmin is disabled because insecure channel': 'admin inhabilitat, el canal no és segur',
|
||||
'application "%s" uninstalled': 'aplicació "%s" desinstal·lada',
|
||||
'application compiled': 'aplicació compilada',
|
||||
'application is compiled and cannot be designed': 'la aplicació està compilada i no pot ser modificada',
|
||||
'Apply changes': 'Aplicar canvis',
|
||||
'Appointment': 'Nomenament',
|
||||
'Are you sure you want to delete file "%s"?': 'Està segur que vol eliminar el arxiu "%s"?',
|
||||
'Are you sure you want to delete this object?': 'Està segur que vol esborrar aquest objecte?',
|
||||
'Are you sure you want to uninstall application "%s"': '¿Està segur que vol desinstalar la aplicació "%s"',
|
||||
'Are you sure you want to uninstall application "%s"?': '¿Està segur que vol desinstalar la aplicació "%s"?',
|
||||
'at': 'a',
|
||||
'ATTENTION: Login requires a secure (HTTPS) connection or running on localhost.': 'ATENCIÓ: Inici de sessió requereix una connexió segura (HTTPS) o localhost.',
|
||||
'ATTENTION: TESTING IS NOT THREAD SAFE SO DO NOT PERFORM MULTIPLE TESTS CONCURRENTLY.': 'ATENCION: NO EJECUTE VARIAS PRUEBAS SIMULTANEAMENTE, NO SON THREAD SAFE.',
|
||||
'ATTENTION: you cannot edit the running application!': 'ATENCIO: no pot modificar la aplicació que està ejecutant-se!',
|
||||
'Authentication': 'Autenticació',
|
||||
'Authentication failed at client DB!': '¡La autenticació ha fallat en la BDD client!',
|
||||
'Authentication failed at main DB!': '¡La autenticació ha fallat en la BDD principal!',
|
||||
'Available Databases and Tables': 'Bases de dades i taules disponibles',
|
||||
'Back': 'Endarrera',
|
||||
'Buy this book': 'Compra aquest lllibre',
|
||||
'Cache': 'Caché',
|
||||
'cache': 'caché',
|
||||
'Cache Cleared': 'Caché Netejada',
|
||||
'Cache Keys': 'Claus de la Caché',
|
||||
'cache, errors and sessions cleaned': 'caché, errors i sessions eliminats',
|
||||
'Cannot be empty': 'No pot estar buit',
|
||||
'Cannot compile: there are errors in your app. Debug it, correct errors and try again.': 'No se pot compilar: hi ha errors en la seva aplicació. Depuri, corregeixi errors i torni a intentar-ho.',
|
||||
'cannot upload file "%(filename)s"': 'no és possible pujar fitxer "%(filename)s"',
|
||||
'Change Password': 'Canviï la Contrasenya',
|
||||
'Change password': 'Canviï la contrasenya',
|
||||
'change password': 'canviï la contrasenya',
|
||||
'Changelog': 'Changelog',
|
||||
'check all': 'marcar tots',
|
||||
'Check to delete': 'Marqui per a eliminar',
|
||||
'choose one': 'escolliu un',
|
||||
'clean': 'neteja',
|
||||
'Clear': 'Netejar',
|
||||
'Clear CACHE?': 'Netejar Memòrica Cau?',
|
||||
'Clear DISK': 'Netejar DISC',
|
||||
'Clear RAM': 'Netejar RAM',
|
||||
'Click on the link %(link)s to reset your password': "Cliqui en l'enllaç %(link)s per a reiniciar la seva contrasenya",
|
||||
'click to check for upgrades': 'feu clic per buscar actualitzacions',
|
||||
'client': 'cliente',
|
||||
'Client IP': 'IP del Client',
|
||||
'Close': 'Tancar',
|
||||
'Comma-separated export including columns not shown; fields from other tables are exported as raw values for faster export': 'Comma-separated export including columns not shown; fields from other tables are exported as raw values for faster export',
|
||||
'Comma-separated export of visible columns. Fields from other tables are exported as they appear on-screen but this may be slow for many rows': 'Comma-separated export of visible columns. Fields from other tables are exported as they appear on-screen but this may be slow for many rows',
|
||||
'Community': 'Comunitat',
|
||||
'compile': 'compilar',
|
||||
'compiled application removed': 'aplicació compilada eliminada',
|
||||
'Components and Plugins': 'Components i Plugins',
|
||||
'contains': 'conté',
|
||||
'Controller': 'Controlador',
|
||||
'Controllers': 'Controladors',
|
||||
'controllers': 'controladors',
|
||||
'Copyright': 'Copyright',
|
||||
'Correo electrónico invàlid': 'Correu electrònic invàlid',
|
||||
'create file with filename:': 'crear el fitxer amb el nom:',
|
||||
'Create new application': 'Crear una nova aplicació',
|
||||
'create new application:': 'crear una nova aplicació:',
|
||||
'Create New Page': 'Crear Pàgina Nova',
|
||||
'Create Page from Slug': 'Create Page from Slug',
|
||||
'Created By': 'Creat Per',
|
||||
'Created On': 'Creat a',
|
||||
'CSV': 'CSV',
|
||||
'CSV (hidden cols)': 'CSV (columnas ocultes)',
|
||||
'Current request': 'Sol·licitud en curs',
|
||||
'Current response': 'Resposta en curs',
|
||||
'Current session': 'Sessió en curs',
|
||||
'currently saved or': 'actualment guardat o',
|
||||
'customize me!': "¡Adapta'm!",
|
||||
'data uploaded': 'dades pujades',
|
||||
'Database': 'Base de dades',
|
||||
'Database %s select': 'selecció a base de dades %s',
|
||||
'database administration': 'administració de base de dades',
|
||||
'Database Administration (appadmin)': 'Administració de Base de Dades (appadmin)',
|
||||
'Date and Time': 'Data i Hora',
|
||||
'DB': 'BDD',
|
||||
'db': 'bdd',
|
||||
'DB Model': 'Model BDD',
|
||||
'defines tables': 'defineix taules',
|
||||
'Delete': 'Eliminar',
|
||||
'delete': 'eliminar',
|
||||
'delete all checked': 'eliminar marcats',
|
||||
'Delete:': 'Eliminar:',
|
||||
'Demo': 'Demostració',
|
||||
'Deploy on Google App Engine': 'Desplegament a Google App Engine',
|
||||
'Deployment Recipes': 'Receptes de desplegament',
|
||||
'Description': 'Descripció',
|
||||
'design': 'diseny',
|
||||
'DESIGN': 'DISENY',
|
||||
'Design for': 'Diseny per a',
|
||||
'detecting': 'detectant',
|
||||
'DISK': 'DISC',
|
||||
'Disk Cache Keys': 'Claus de Caché en Disc',
|
||||
'Disk Cleared': 'Disc netejat',
|
||||
'Documentation': 'Documentació',
|
||||
"Don't know what to do?": 'No sap què fer?',
|
||||
'done!': '¡fet!',
|
||||
'Download': 'Descàrregues',
|
||||
'E-mail': 'Correu electrònic',
|
||||
'edit': 'editar',
|
||||
'EDIT': 'EDITAR',
|
||||
'Edit': 'Editar',
|
||||
'Edit application': 'Editar aplicació',
|
||||
'edit controller': 'editar controlador',
|
||||
'Edit current record': 'Editar el registre actual',
|
||||
'Edit Menu': 'Editar Menu',
|
||||
'Edit Page': 'Editar Pàgina',
|
||||
'Edit Page Media': 'Edit Page Media',
|
||||
'Edit Profile': 'Editar Perfil',
|
||||
'edit profile': 'editar perfil',
|
||||
'Edit This App': 'Editi aquesta App',
|
||||
'Editing file': 'Editant fitxer',
|
||||
'Editing file "%s"': 'Editant fitxer "%s"',
|
||||
'El fitxer ha de ser PDF': 'El fitxer ha de ser PDF',
|
||||
'El fitxer ha de ser PDF o XML': 'El fitxer ha de ser PDF o XML',
|
||||
'Email': 'Email',
|
||||
'Email and SMS': 'Correu electrònic i SMS',
|
||||
'Email sent': 'Correu electrònic enviat',
|
||||
'End of impersonation': 'Fi de suplantació',
|
||||
'enter a number between %(min)g and %(max)g': 'introdueixi un número entre %(min)g i %(max)g',
|
||||
'Enter a valid email address': 'Entri una adreça email vàlida',
|
||||
'enter a value': 'entri un valor',
|
||||
'Enter a value': 'Entri un valor',
|
||||
'Enter an integer between %(min)g and %(max)g': 'Entri un numero enter entre %(min)g i %(max)g',
|
||||
'enter an integer between %(min)g and %(max)g': 'entri numero enter entre %(min)g i %(max)g',
|
||||
'enter date and time as %(format)s': 'entri data i hora com %(format)s',
|
||||
'Enter from %(min)g to %(max)g characters': 'Entri des de %(min)g a %(max)g caràcters',
|
||||
'Enter valid filename': 'Entri nom de fitxer vàlid',
|
||||
'Error logs for "%(app)s"': 'Bitàcora de errors a "%(app)s"',
|
||||
'errors': 'errors',
|
||||
'Errors': 'Errors',
|
||||
'Errors in form, please check it out.': 'Hi ha errors en el formulari, per favor comprovi-ho.',
|
||||
'export as csv file': 'exportar com fitxer CSV',
|
||||
'Export:': 'Exportar:',
|
||||
'exposes': 'exposa',
|
||||
'extends': 'extén',
|
||||
'failed to reload module': 'la recàrrega del mòdul ha fallat',
|
||||
'FAQ': 'FAQ',
|
||||
'file': 'fitxer',
|
||||
'file "%(filename)s" created': 'fitxer "%(filename)s" creat',
|
||||
'file "%(filename)s" deleted': 'fitxer "%(filename)s" eliminat',
|
||||
'file "%(filename)s" uploaded': 'fitxer "%(filename)s" pujat',
|
||||
'file "%(filename)s" was not deleted': 'fitxer "%(filename)s" no fou eliminat',
|
||||
'file "%s" of %s restored': 'fitxer "%s" de %s restaurat',
|
||||
'file ## download': 'file ',
|
||||
'file changed on disk': 'fitxer modificat en el disco',
|
||||
'file does not exist': 'fitxer no existeix',
|
||||
'file saved on %(time)s': 'fitxer guardat a %(time)s',
|
||||
'file saved on %s': 'fitxer guardat a %s',
|
||||
'First name': 'Nom',
|
||||
'Forgot username?': 'Ha oblidat el nom de usuari?',
|
||||
'Forms and Validators': 'Formularis i validadors',
|
||||
'Free Applications': 'Aplicacions Lliures',
|
||||
'Functions with no doctests will result in [passed] tests.': 'Funcions sense doctests equivalen a pruebas [aceptades].',
|
||||
'Group %(group_id)s created': 'Grupo %(group_id)s creat',
|
||||
'Group ID': 'ID de Grup',
|
||||
'Group uniquely assigned to user %(id)s': 'Grup assignat únicament al usuari %(id)s',
|
||||
'Groups': 'Grups',
|
||||
'Hello': 'Hola',
|
||||
'Hello World': 'Hola Món',
|
||||
'help': 'ajuda',
|
||||
'Home': 'Inici',
|
||||
'Hosted by': 'Hosted by',
|
||||
'How did you get here?': 'Com has arribat aquí?',
|
||||
'HTML': 'HTML',
|
||||
'HTML export of visible columns': 'HTML export de columnes visibles',
|
||||
'htmledit': 'htmledit',
|
||||
'Impersonate': 'Suplantar',
|
||||
'import': 'importar',
|
||||
'Import/Export': 'Importar/Exportar',
|
||||
'in': 'a',
|
||||
'includes': 'inclou',
|
||||
'Index': 'Índex',
|
||||
'insert new': 'inserti nou',
|
||||
'insert new %s': 'inserti nou %s',
|
||||
'Installed applications': 'Aplicacions instalades',
|
||||
'Insufficient privileges': 'Privilegis insuficients',
|
||||
'internal error': 'error intern',
|
||||
'Internal State': 'Estat Intern',
|
||||
'Introduction': 'Introducció',
|
||||
'Invalid action': 'Acció invàlida',
|
||||
'Invalid email': 'Correo electrónico invàlid',
|
||||
'invalid expression': 'expressió invàlida',
|
||||
'Invalid login': 'Inici de sessió invàlida',
|
||||
'invalid password': 'contrasenya invàlida',
|
||||
'Invalid Query': 'Consulta invàlida',
|
||||
'invalid request': 'sol·licitud invàlida',
|
||||
'Invalid reset password': 'Reinici de contrasenya invàlid',
|
||||
'invalid ticket': 'tiquet invàlid',
|
||||
'Is Active': 'Està Actiu',
|
||||
'Key': 'Clau',
|
||||
'language file "%(filename)s" created/updated': 'fitxer de llenguatge "%(filename)s" creat/actualitzat',
|
||||
'Language files (static strings) updated': 'Fitxers de llenguatge (cadenes estàtiques) actualitzats',
|
||||
'languages': 'llenguatges',
|
||||
'Languages': 'Llenguatges',
|
||||
'languages updated': 'llenguatges actualitzats',
|
||||
'Last name': 'Cognom',
|
||||
'Last saved on:': 'Guardat a:',
|
||||
'Layout': 'Diseny de pàgina',
|
||||
'Layout Plugins': 'Plugins de disseny',
|
||||
'Layouts': 'Dissenys de pàgines',
|
||||
'License for': 'Llicència per a',
|
||||
'Live Chat': 'Xat en viu',
|
||||
'loading...': 'carregant...',
|
||||
'Log In': 'Log In',
|
||||
'Log Out': 'Log Out',
|
||||
'Logged in': 'Sessió iniciada',
|
||||
'Logged out': 'Sessió finalitzada',
|
||||
'Login': 'Inici de sessió',
|
||||
'login': 'inici de sessió',
|
||||
'Login disabled by administrator': 'Inici de sessió inhabilitat pel administrador',
|
||||
'Login to the Administrative Interface': 'Inici de sessió per a la Interfície Administrativa',
|
||||
'logout': 'fi de sessió',
|
||||
'Logout': 'Fi de sessió',
|
||||
'Lost Password': 'Contrasenya perdida',
|
||||
'Lost password?': 'Ha oblidat la contrasenya?',
|
||||
'lost password?': '¿ha oblidat la contrasenya?',
|
||||
'Main Menu': 'Menú principal',
|
||||
'Manage %(action)s': 'Manage %(action)s',
|
||||
'Manage Access Control': 'Manage Access Control',
|
||||
'Manage Cache': 'Gestionar la Caché',
|
||||
'Menu Model': 'Model "menu"',
|
||||
'merge': 'combinar',
|
||||
'Models': 'Models',
|
||||
'models': 'models',
|
||||
'Modified By': 'Modificat Per',
|
||||
'Modified On': 'Modificat A',
|
||||
'Modules': 'Mòduls',
|
||||
'modules': 'mòduls',
|
||||
'must be YYYY-MM-DD HH:MM:SS!': '¡debe ser DD/MM/YYYY HH:MM:SS!',
|
||||
'must be YYYY-MM-DD!': '¡debe ser DD/MM/YYYY!',
|
||||
'My Sites': 'Els Meus Llocs',
|
||||
'Name': 'Nombre',
|
||||
'New': 'Nuevo',
|
||||
'New %(entity)s': 'Nou %(entity)s',
|
||||
'new application "%s" created': 'nova aplicació "%s" creada',
|
||||
'New password': 'Contrasenya nova',
|
||||
'New Record': 'Registre nou',
|
||||
'new record inserted': 'nou registre insertat',
|
||||
'New Search': 'Cerca nova',
|
||||
'next %s rows': 'següents %s files',
|
||||
'next 100 rows': '100 files següents',
|
||||
'NO': 'NO',
|
||||
'No databases in this application': 'No hi ha bases de dades en esta aplicació',
|
||||
'No records found': "No s'han trobat registres",
|
||||
'Not authorized': 'No autoritzat',
|
||||
'not in': 'no a',
|
||||
'Object or table name': 'Nom del objecte o taula',
|
||||
'Old password': 'Contrasenya anterior',
|
||||
'Online examples': 'Ejemples en línia',
|
||||
'Or': 'O',
|
||||
'or import from csv file': 'o importar desde fitxer CSV',
|
||||
'or provide application url:': 'o proveeix URL de la aplicació:',
|
||||
'Origin': 'Origen',
|
||||
'Original/Translation': 'Original/Traducció',
|
||||
'Other Plugins': 'Altres Plugins',
|
||||
'Other Recipes': 'Altres Receptes',
|
||||
'Overview': 'Resum',
|
||||
'pack all': 'empaquetar tot',
|
||||
'pack compiled': 'empaquetar compilats',
|
||||
'Password': 'Contrasenya',
|
||||
'Password changed': 'Contrasenya cambiada',
|
||||
"Password fields don't match": 'Els camps de contrasenya no coincideixen',
|
||||
'Password reset': 'Reinici de contrasenya',
|
||||
'Peeking at file': 'Visualitzant fitxer',
|
||||
'Permission': 'Permís',
|
||||
'Permissions': 'Permisos',
|
||||
'Phone': 'Telèfon',
|
||||
'please input your password again': 'si us plau, entri un altre cop la seva contrasenya',
|
||||
'Plugins': 'Plugins',
|
||||
'Powered by': 'Aquest lloc utilitza',
|
||||
'Preface': 'Prefaci',
|
||||
'Presentar Factures': 'Presentar Factures',
|
||||
'Presentar factures': 'Presentar factures',
|
||||
'previous %s rows': '%s files prèvies',
|
||||
'previous 100 rows': '100 files anteriors',
|
||||
'Profile': 'Perfil',
|
||||
'Profile updated': 'Perfil actualitzat',
|
||||
'pygraphviz library not found': 'pygraphviz library not found',
|
||||
'Python': 'Python',
|
||||
'Query Not Supported: %s': 'Consulta No Suportada: %s',
|
||||
'Query:': 'Consulta:',
|
||||
'Quick Examples': 'Exemple Ràpids',
|
||||
'RAM': 'RAM',
|
||||
'RAM Cache Keys': 'Claus de la Caché en RAM',
|
||||
'Ram Cleared': 'Ram Netjeda',
|
||||
'Recipes': 'Receptes',
|
||||
'Record': 'Registre',
|
||||
'Record %(id)s created': 'Registre %(id)s creat',
|
||||
'Record Created': 'Registre Creat',
|
||||
'record does not exist': 'el registre no existe',
|
||||
'Record ID': 'ID de Registre',
|
||||
'Record id': 'Id de registre',
|
||||
'Ref APB': 'Ref APB',
|
||||
'register': "registri's",
|
||||
'Register': "Registri's",
|
||||
'Registration identifier': 'Identificador de Registre',
|
||||
'Registration key': 'Clau de registre',
|
||||
'Registration successful': 'Registre amb èxit',
|
||||
'reload': 'recarregar',
|
||||
'Remember me (for 30 days)': "Recordi'm (durant 30 dies)",
|
||||
'remove compiled': 'eliminar compilades',
|
||||
'Request reset password': 'Sol·licitud de restabliment de contrasenya',
|
||||
'Reset password': 'Reiniciar contrasenya',
|
||||
'Reset Password key': 'Restaurar Clau de la Contrasenya',
|
||||
'Resolve Conflict file': 'Resolgui el Conflicte de fitxer',
|
||||
'restore': 'restaurar',
|
||||
'Retrieve username': 'Recuperar nom de usuari',
|
||||
'revert': 'revertir',
|
||||
'Role': 'Rol',
|
||||
'Roles': 'Rols',
|
||||
'Rows in Table': 'Files a la taula',
|
||||
'Rows selected': 'Files seleccionades',
|
||||
'save': 'guardar',
|
||||
'Save model as...': 'Save model as...',
|
||||
'Saved file hash:': 'Hash del fitxer guardat:',
|
||||
'Search': 'Buscar',
|
||||
'Search Pages': 'Search Pages',
|
||||
'Semantic': 'Semàntica',
|
||||
'Services': 'Serveis',
|
||||
'session expired': 'sessió expirada',
|
||||
'shell': 'terminal',
|
||||
'Sign Up': 'Sign Up',
|
||||
'site': 'lloc',
|
||||
'Size of cache:': 'Mida de la Caché:',
|
||||
'Slug': 'Slug',
|
||||
'some files could not be removed': 'algunos archivos no pudieron ser removidos',
|
||||
'Spreadsheet-optimised export of tab-separated content including hidden columns. May be slow': 'Spreadsheet-optimised export of tab-separated content including hidden columns. May be slow',
|
||||
'Spreadsheet-optimised export of tab-separated content, visible columns only. May be slow.': 'Spreadsheet-optimised export of tab-separated content, visible columns only. May be slow.',
|
||||
'start': 'inici',
|
||||
'Start building a new search': 'Start building a new search',
|
||||
'starts with': 'comença per',
|
||||
'state': 'estat',
|
||||
'static': 'estàtics',
|
||||
'Static files': 'Fitxers estàtics',
|
||||
'Statistics': 'Estadístiques',
|
||||
'Stylesheet': "Fulla d'estil",
|
||||
'Submit': 'Enviar',
|
||||
'submit': 'enviar',
|
||||
'Success!': 'Correcte!',
|
||||
'Support': 'Suport',
|
||||
'Sure you want to delete this object?': '¿Està segur que vol eliminar aquest objecte?',
|
||||
'Table': 'taula',
|
||||
'Table name': 'Nom de la taula',
|
||||
'test': 'provar',
|
||||
'Testing application': 'Provant aplicació',
|
||||
'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'La "consulta" és una condición com "db.tabla1.campo1==\'valor\'". Algo com "db.tabla1.campo1==db.tabla2.campo2" resulta en un JOIN SQL.',
|
||||
'the application logic, each URL path is mapped in one exposed function in the controller': 'la lògica de la aplicació, cada ruta URL es mapeja en una funció exposada en el controlador',
|
||||
'The Core': 'El Nucli',
|
||||
'the data representation, define database tables and sets': 'la representació de dades, defineix taules i conjunts de base de dades',
|
||||
'The output of the file is a dictionary that was rendered by the view %s': 'El resultat de aquesta funció és un diccionari que és desplegat per la vista %s',
|
||||
'the presentations layer, views are also known as templates': 'la capa de presentació, les vistes també són anomenades plantilles',
|
||||
'The Views': 'Les Vistes',
|
||||
'There are no controllers': 'No hi ha controladors',
|
||||
'There are no models': 'No hi ha models',
|
||||
'There are no modules': 'No hi ha mòduls',
|
||||
'There are no static files': 'No hi ha fitxers estàtics',
|
||||
'There are no translators, only default language is supported': 'No hi ha traductors, només el llenguatge per defecte és suportat',
|
||||
'There are no views': 'No hi ha vistes',
|
||||
'these files are served without processing, your images go here': 'aquests fitxers són servits sense processar, les seves imatges van aquí',
|
||||
'This App': 'Aquesta Aplicació',
|
||||
'This email already has an account': 'Aquest correu electrònic ja té un compte',
|
||||
'This is a copy of the scaffolding application': 'Aquesta és una còpia de la aplicació de bastiment',
|
||||
'This is the %(filename)s template': 'Aquesta és la plantilla %(filename)s',
|
||||
'Ticket': 'Tiquet',
|
||||
'Time in Cache (h:m:s)': 'Temps en Caché (h:m:s)',
|
||||
'Timestamp': 'Marca de temps',
|
||||
'Title': 'Títol',
|
||||
'to previous version.': 'a la versió prèvia.',
|
||||
'To emulate a breakpoint programatically, write:': 'Emular un punto de ruptura programàticament, escribir:',
|
||||
'to use the debugger!': 'usar el depurador!',
|
||||
'toggle breakpoint': 'alternar punt de ruptura',
|
||||
'Toggle comment': 'Alternar comentari',
|
||||
'Toggle Fullscreen': 'Alternar pantalla completa',
|
||||
'too short': 'massa curt',
|
||||
'Traceback': 'Traceback',
|
||||
'translation strings for the application': 'cadenes de caracters de traducció per a la aplicació',
|
||||
'try': 'intenti',
|
||||
'try something like': 'intenti algo com',
|
||||
'TSV (Excel compatible)': 'TSV (compatible Excel)',
|
||||
'TSV (Excel compatible, hidden cols)': 'TSV (compatible Excel, columnes ocultes)',
|
||||
'TSV (Spreadsheets)': 'TSV (Fulls de càlcul)',
|
||||
'TSV (Spreadsheets, hidden cols)': 'TSV (Fulls de càlcul, columnes amagades)',
|
||||
'Twitter': 'Twitter',
|
||||
'Unable to check for upgrades': 'No és possible verificar la existencia de actualitzacions',
|
||||
'unable to create application "%s"': 'no és possible crear la aplicació "%s"',
|
||||
'unable to delete file "%(filename)s"': 'no és possible eliminar el fitxer "%(filename)s"',
|
||||
'Unable to download': 'No és possible la descàrrega',
|
||||
'Unable to download app': 'No és possible descarregar la aplicació',
|
||||
'unable to parse csv file': 'no és possible analitzar el fitxer CSV',
|
||||
'unable to uninstall "%s"': 'no és possible instalar "%s"',
|
||||
'uncheck all': 'desmarcar tots',
|
||||
'uninstall': 'desinstalar',
|
||||
'unknown': 'desconocido',
|
||||
'update': 'actualitzar',
|
||||
'update all languages': 'actualitzar tots els llenguatges',
|
||||
'Update:': 'Actualizi:',
|
||||
'upload application:': 'pujar aplicació:',
|
||||
'Upload existing application': 'Puji aquesta aplicació',
|
||||
'upload file:': 'puji fitxer:',
|
||||
'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Use (...)&(...) para AND, (...)|(...) para OR, i ~(...) para NOT, para crear consultas més complexes.',
|
||||
'User': 'Usuari',
|
||||
'User %(id)s is impersonating %(other_id)s': 'El usuari %(id)s està suplantant %(other_id)s',
|
||||
'User %(id)s Logged-in': 'El usuari %(id)s inicià la sessió',
|
||||
'User %(id)s Logged-out': 'El usuari %(id)s finalitzà la sessió',
|
||||
'User %(id)s Password changed': 'Contrasenya del usuari %(id)s canviada',
|
||||
'User %(id)s Password reset': 'Contrasenya del usuari %(id)s reiniciada',
|
||||
'User %(id)s Profile updated': 'Actualitzat el perfil del usuari %(id)s',
|
||||
'User %(id)s Registered': 'Usuari %(id)s Registrat',
|
||||
'User %(id)s Username retrieved': 'Se ha recuperat el nom de usuari del usuari %(id)s',
|
||||
'User %(username)s Logged-in': 'El usuari %(username)s inicià la sessió',
|
||||
"User '%(username)s' Logged-in": "El usuari '%(username)s' inicià la sessió",
|
||||
"User '%(username)s' Logged-out": "El usuari '%(username)s' finalitzà la sessió",
|
||||
'User Id': 'Id de Usuari',
|
||||
'User ID': 'ID de Usuari',
|
||||
'User Logged-out': 'El usuari finalitzà la sessió',
|
||||
'Username': 'Nom de usuari',
|
||||
'Username retrieve': 'Recuperar nom de usuari',
|
||||
'Users': 'Usuaris',
|
||||
'Value already in database or empty': 'El valor ya existeix en la base de dades o està buit',
|
||||
'value already in database or empty': 'el valor ya existeix en la base de dades o està buit',
|
||||
'value not allowed': 'valor no permès',
|
||||
'Value not in database': 'El valor no està a la base de dades',
|
||||
'value not in database': 'el valor no està a la base de dades',
|
||||
'Verify Password': 'Verificar Contrasenya',
|
||||
'Version': 'Versió',
|
||||
'versioning': 'versions',
|
||||
'Videos': 'Videos',
|
||||
'View': 'Vista',
|
||||
'view': 'vista',
|
||||
'View %(entity)s': 'Veure %(entity)s',
|
||||
'View Page': 'View Page',
|
||||
'Views': 'Vistes',
|
||||
'views': 'vistes',
|
||||
'web2py is up to date': 'web2py està actualitzat',
|
||||
'web2py Recent Tweets': 'Tweets Recents de web2py',
|
||||
'Welcome': 'Benvingut',
|
||||
'Welcome %s': 'Benvingut %s',
|
||||
'Welcome to web2py': 'Benvingut a web2py',
|
||||
'Welcome to web2py!': '¡Benvingut a web2py!',
|
||||
'Which called the function %s located in the file %s': 'La qual va cridar la funció %s localitzada en el fitxer %s',
|
||||
'Wiki Page': 'Wiki Page',
|
||||
'Working...': 'Treballant ...',
|
||||
'XML': 'XML',
|
||||
'XML export of columns shown': 'XML export of columns shown',
|
||||
'YES': 'SÍ',
|
||||
'You are successfully running web2py': 'Vostè està executant web2py amb èxit',
|
||||
'You can modify this application and adapt it to your needs': 'Vostè pot modificar aquesta aplicació i adaptar-la a les seves necessitats',
|
||||
'You visited the url %s': 'Vostè va visitar la url %s',
|
||||
'Your username is: %(username)s': 'El seu nom de usuari és: %(username)s',
|
||||
}
|
||||
+37
-6
@@ -246,11 +246,11 @@ class CacheOnDisk(CacheAbstract):
|
||||
"""
|
||||
Disk based cache
|
||||
|
||||
This is implemented as a shelve object and it is shared by multiple web2py
|
||||
processes (and threads) as long as they share the same filesystem.
|
||||
This is implemented as a key value store where each key corresponds to a
|
||||
single file in disk which is replaced when the value changes.
|
||||
|
||||
Disk cache provides persistance when web2py is started/stopped but it slower
|
||||
than `CacheInRam`
|
||||
Disk cache provides persistance when web2py is started/stopped but it is
|
||||
slower than `CacheInRam`
|
||||
|
||||
Values stored in disk cache must be pickable.
|
||||
"""
|
||||
@@ -259,8 +259,11 @@ class CacheOnDisk(CacheAbstract):
|
||||
"""
|
||||
Implements a key based storage in disk.
|
||||
"""
|
||||
|
||||
def __init__(self, folder):
|
||||
self.folder = folder
|
||||
self.key_filter_in = lambda key: key
|
||||
self.key_filter_out = lambda key: key
|
||||
# Check the best way to do atomic file replacement.
|
||||
if sys.version_info >= (3, 3):
|
||||
self.replace = os.replace
|
||||
@@ -287,6 +290,25 @@ class CacheOnDisk(CacheAbstract):
|
||||
# POSIX rename() is always atomic
|
||||
self.replace = os.rename
|
||||
|
||||
# Make sure we use valid filenames.
|
||||
if sys.platform == "win32":
|
||||
import base64
|
||||
def key_filter_in_windows(key):
|
||||
"""
|
||||
Windows doesn't allow \ / : * ? "< > | in filenames.
|
||||
To go around this encode the keys with base32.
|
||||
"""
|
||||
return base64.b32encode(key)
|
||||
|
||||
def key_filter_out_windows(key):
|
||||
"""
|
||||
We need to decode the keys so regex based removal works.
|
||||
"""
|
||||
return base64.b32decode(key)
|
||||
|
||||
self.key_filter_in = key_filter_in_windows
|
||||
self.key_filter_out = key_filter_out_windows
|
||||
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
tmp_name, tmp_path = tempfile.mkstemp(dir=self.folder)
|
||||
@@ -295,6 +317,7 @@ class CacheOnDisk(CacheAbstract):
|
||||
pickle.dump((time.time(), value), tmp, pickle.HIGHEST_PROTOCOL)
|
||||
finally:
|
||||
tmp.close()
|
||||
key = self.key_filter_in(key)
|
||||
fullfilename = os.path.join(self.folder, recfile.generate(key))
|
||||
if not os.path.exists(os.path.dirname(fullfilename)):
|
||||
os.makedirs(os.path.dirname(fullfilename))
|
||||
@@ -302,27 +325,33 @@ class CacheOnDisk(CacheAbstract):
|
||||
|
||||
|
||||
def __getitem__(self, key):
|
||||
key = self.key_filter_in(key)
|
||||
if recfile.exists(key, path=self.folder):
|
||||
timestamp, value = pickle.load(recfile.open(key, 'rb', path=self.folder))
|
||||
return value
|
||||
else:
|
||||
raise KeyError
|
||||
|
||||
|
||||
def __contains__(self, key):
|
||||
key = self.key_filter_in(key)
|
||||
return recfile.exists(key, path=self.folder)
|
||||
|
||||
|
||||
def __delitem__(self, key):
|
||||
key = self.key_filter_in(key)
|
||||
recfile.remove(key, path=self.folder)
|
||||
|
||||
|
||||
def __iter__(self):
|
||||
for dirpath, dirnames, filenames in os.walk(self.folder):
|
||||
for filename in filenames:
|
||||
yield filename
|
||||
yield self.key_filter_out(filename)
|
||||
|
||||
|
||||
def keys(self):
|
||||
return [filename for dirpath, dirnames, filenames in os.walk(self.folder) for filename in filenames]
|
||||
return list(self.__iter__())
|
||||
|
||||
|
||||
def get(self, key, default=None):
|
||||
try:
|
||||
@@ -335,6 +364,7 @@ class CacheOnDisk(CacheAbstract):
|
||||
for key in self:
|
||||
del self[key]
|
||||
|
||||
|
||||
def __init__(self, request=None, folder=None):
|
||||
self.initialized = False
|
||||
self.request = request
|
||||
@@ -389,6 +419,7 @@ class CacheOnDisk(CacheAbstract):
|
||||
|
||||
return value
|
||||
|
||||
|
||||
def clear(self, regex=None):
|
||||
self.initialize()
|
||||
storage = self.storage
|
||||
|
||||
@@ -507,7 +507,7 @@ class GoogleDatastoreAdapter(NoSQLAdapter):
|
||||
db['_lastcursor'] = cursor
|
||||
else:
|
||||
# if a limit is not specified, always return an iterator
|
||||
rows = query
|
||||
items = query
|
||||
|
||||
return (items, tablename, projection or db[tablename].fields)
|
||||
|
||||
|
||||
@@ -430,7 +430,6 @@ class Table(object):
|
||||
if query:
|
||||
self._common_filter = \
|
||||
lambda q: reduce(AND, [query(q), newquery(q)])
|
||||
newquery = query & newquery
|
||||
else:
|
||||
self._common_filter = newquery
|
||||
|
||||
|
||||
Reference in New Issue
Block a user