├── ABOUT ├── LICENSE ├── README.md ├── __init__.py ├── controllers ├── appadmin.py ├── default.py └── default.py.bak ├── cron ├── crontab └── crontab.example ├── databases ├── c8b669d15150d7109e5f7ab36744a5b7_auth_cas.table ├── c8b669d15150d7109e5f7ab36744a5b7_auth_event.table ├── c8b669d15150d7109e5f7ab36744a5b7_auth_group.table ├── c8b669d15150d7109e5f7ab36744a5b7_auth_membership.table ├── c8b669d15150d7109e5f7ab36744a5b7_auth_permission.table ├── c8b669d15150d7109e5f7ab36744a5b7_auth_user.table ├── sql.log └── storage.sqlite ├── errors ├── 127.0.0.1.2017-06-30.21-25-39.649a2e83-4dc1-4d09-bbab-ac3451e27f8c ├── 127.0.0.1.2017-06-30.21-26-53.54359766-347c-4295-99a6-af1e20348bef ├── 127.0.0.1.2017-06-30.21-32-58.c5076ea4-c2d1-43c2-b1ff-0db8729755a3 ├── 127.0.0.1.2017-06-30.21-34-37.92d98134-ea6c-4ad1-9e52-71863b9f6857 ├── 127.0.0.1.2017-06-30.21-36-59.6d9907b9-b442-4f65-a3a3-3df8cbcfa20e ├── 127.0.0.1.2017-06-30.21-57-02.9fc9aced-b997-46cc-b026-28d6ce20edde ├── 127.0.0.1.2017-06-30.21-57-53.67dd5f1b-db68-4ee7-919a-45892c015159 ├── 127.0.0.1.2017-06-30.21-59-09.ababaf7c-dcab-4bfc-b22e-80accba6fcf5 ├── 127.0.0.1.2017-06-30.21-59-38.2105ada5-152f-46e9-b97c-a216d724bcf4 └── 127.0.0.1.2017-06-30.22-02-14.83507dd2-c770-4531-87c4-0daff2446abd ├── languages ├── ar.py ├── ca.py ├── cs.py ├── de.py ├── default.py ├── es.py ├── fr-ca.py ├── fr.py ├── hi.py ├── hu.py ├── id.py ├── it.py ├── my-mm.py ├── my.py ├── nl.py ├── pl.py ├── plural-cs.py ├── plural-en.py ├── plural-es.py ├── plural-ru.py ├── plural-uk.py ├── pt-br.py ├── pt.py ├── ro.py ├── ru.py ├── sk.py ├── tr.py ├── uk.py ├── zh-cn.py ├── zh-tw.py └── zh.py ├── models ├── db.py └── menu.py ├── modules └── __init__.py ├── private └── appconfig.ini ├── progress.log ├── routes.example.py ├── sessions ├── 112 │ └── 0e7 │ │ └── 127.0.0.1-0b0488ee-4af9-4de1-9623-10e8dd0bb962 ├── 163 │ └── 1ea │ │ └── 127.0.0.1-f86b1fb9-1e11-435c-9232-b7682319ebab ├── 05e │ └── 025 │ │ └── 127.0.0.1-b385bd27-8e47-4103-b74d-49a2ca9be9e8 ├── 078 │ └── 021 │ │ └── 127.0.0.1-6eda89e9-2e46-4313-b89c-174fba45f655 └── 0e3 │ └── 04c │ └── 127.0.0.1-1bb5f9af-5953-4913-b5ce-c95646b7d9a1 ├── static ├── 403.html ├── 404.html ├── 500.html ├── css │ ├── bootstrap-theme.min.css │ ├── bootstrap.min.css │ ├── calendar.css │ ├── layout.css │ ├── web2py-bootstrap3.css │ └── web2py.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── images │ ├── background.jpg │ ├── facebook.png │ ├── favicon.ico │ ├── favicon.png │ ├── gplus-32.png │ └── twitter.png └── js │ ├── analytics.min.js │ ├── bootstrap.min.js │ ├── calendar.js │ ├── jquery.js │ ├── modernizr-2.8.3.min.js │ ├── respond-1.4.2.min.js │ ├── share.js │ ├── web2py-bootstrap3.js │ └── web2py.js └── views ├── __init__.py ├── appadmin.html ├── default ├── create_problem.html ├── index.html ├── params.html ├── solution.html └── solution.html.bak ├── generic.html ├── generic.ics ├── generic.json ├── generic.jsonp ├── generic.load ├── generic.map ├── generic.pdf ├── generic.rss ├── generic.xml ├── layout.html └── web2py_ajax.html /ABOUT: -------------------------------------------------------------------------------- 1 | Write something about this app. 2 | Developed with web2py. 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The web2py welcome app is licensed under public domain 2 | (except for the css and js files that it includes, which have their own third party licenses). 3 | 4 | You can modify this license when you add your own code. 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Branch-Bound-Algorithm](https://aristosman94.pythonanywhere.com/BranchandBound) 2 | Branch and Bound is an algorithm for solving discrete optimization problems. The algorithm is implemented in python. 3 | The libraries [Pulp](https://pythonhosted.org/PuLP/) (for solving the LPs in every step) and 4 | [Treelib](http://treelib.readthedocs.io/en/latest/) (for the implementation of tree data structure) are used. 5 | I also have used the web framework [Web2Py](http://www.web2py.com/) for creating a web app and [Google Charts](https://developers.google.com/chart/interactive/docs/gallery/orgchart) for visualizing my results. 6 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /controllers/default.py.bak: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # this file is released under public domain and you can use without limitations 3 | 4 | # ------------------------------------------------------------------------- 5 | # This is a sample controller 6 | # - index is the default action of any application 7 | # - user is required for authentication and authorization 8 | # - download is for downloading files uploaded in the db (does streaming) 9 | # ------------------------------------------------------------------------- 10 | 11 | 12 | def index(): 13 | """ 14 | example action using the internationalization operator T and flash 15 | rendered by views/default/index.html or views/generic.html 16 | 17 | if you need a simple wiki simply replace the two lines below with: 18 | return auth.wiki() 19 | """ 20 | response.flash = T("Hello World") 21 | return dict(message=T('Welcome to web2py!')) 22 | 23 | 24 | def user(): 25 | """ 26 | exposes: 27 | http://..../[app]/default/user/login 28 | http://..../[app]/default/user/logout 29 | http://..../[app]/default/user/register 30 | http://..../[app]/default/user/profile 31 | http://..../[app]/default/user/retrieve_password 32 | http://..../[app]/default/user/change_password 33 | http://..../[app]/default/user/bulk_register 34 | use @auth.requires_login() 35 | @auth.requires_membership('group name') 36 | @auth.requires_permission('read','table name',record_id) 37 | to decorate functions that need access control 38 | also notice there is http://..../[app]/appadmin/manage/auth to allow administrator to manage users 39 | """ 40 | return dict(form=auth()) 41 | 42 | 43 | @cache.action() 44 | def download(): 45 | """ 46 | allows downloading of uploaded files 47 | http://..../[app]/default/download/[filename] 48 | """ 49 | return response.download(request, db) 50 | 51 | 52 | def call(): 53 | """ 54 | exposes services. for example: 55 | http://..../[app]/default/call/jsonrpc 56 | decorate with @services.jsonrpc the functions to expose 57 | supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv 58 | """ 59 | return service() 60 | 61 | 62 | -------------------------------------------------------------------------------- /cron/crontab: -------------------------------------------------------------------------------- 1 | #crontab -------------------------------------------------------------------------------- /cron/crontab.example: -------------------------------------------------------------------------------- 1 | #crontab -------------------------------------------------------------------------------- /databases/c8b669d15150d7109e5f7ab36744a5b7_auth_cas.table: -------------------------------------------------------------------------------- 1 | (dp1 2 | S'user_id' 3 | p2 4 | (dp3 5 | S'length' 6 | p4 7 | I512 8 | sS'unique' 9 | p5 10 | I00 11 | sS'sortable' 12 | p6 13 | I2 14 | sS'sql' 15 | p7 16 | S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE ' 17 | p8 18 | sS'notnull' 19 | p9 20 | I00 21 | sS'type' 22 | p10 23 | S'reference auth_user' 24 | p11 25 | ssS'service' 26 | p12 27 | (dp13 28 | g4 29 | I512 30 | sg5 31 | I00 32 | sg6 33 | I4 34 | sg7 35 | S'CHAR(512)' 36 | p14 37 | sg9 38 | I00 39 | sg10 40 | S'string' 41 | p15 42 | ssS'renew' 43 | p16 44 | (dp17 45 | g4 46 | I512 47 | sg5 48 | I00 49 | sg6 50 | I6 51 | sg7 52 | S'CHAR(1)' 53 | p18 54 | sg9 55 | I00 56 | sg10 57 | S'boolean' 58 | p19 59 | ssS'created_on' 60 | p20 61 | (dp21 62 | g4 63 | I512 64 | sg5 65 | I00 66 | sg6 67 | I3 68 | sg7 69 | S'TIMESTAMP' 70 | p22 71 | sg9 72 | I00 73 | sg10 74 | S'datetime' 75 | p23 76 | ssS'ticket' 77 | p24 78 | (dp25 79 | g4 80 | I512 81 | sg5 82 | I00 83 | sg6 84 | I5 85 | sg7 86 | S'CHAR(512)' 87 | p26 88 | sg9 89 | I00 90 | sg10 91 | g15 92 | ssS'id' 93 | p27 94 | (dp28 95 | g4 96 | I512 97 | sg5 98 | I00 99 | sg6 100 | I1 101 | sg7 102 | S'INTEGER PRIMARY KEY AUTOINCREMENT' 103 | p29 104 | sg9 105 | I00 106 | sg10 107 | g27 108 | ss. -------------------------------------------------------------------------------- /databases/c8b669d15150d7109e5f7ab36744a5b7_auth_event.table: -------------------------------------------------------------------------------- 1 | (dp1 2 | S'origin' 3 | p2 4 | (dp3 5 | S'length' 6 | p4 7 | I512 8 | sS'unique' 9 | p5 10 | I00 11 | sS'sortable' 12 | p6 13 | I5 14 | sS'sql' 15 | p7 16 | S'CHAR(512)' 17 | p8 18 | sS'notnull' 19 | p9 20 | I00 21 | sS'type' 22 | p10 23 | S'string' 24 | p11 25 | ssS'client_ip' 26 | p12 27 | (dp13 28 | g4 29 | I512 30 | sg5 31 | I00 32 | sg6 33 | I3 34 | sg7 35 | S'CHAR(512)' 36 | p14 37 | sg9 38 | I00 39 | sg10 40 | g11 41 | ssS'user_id' 42 | p15 43 | (dp16 44 | g4 45 | I512 46 | sg5 47 | I00 48 | sg6 49 | I4 50 | sg7 51 | S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE ' 52 | p17 53 | sg9 54 | I00 55 | sg10 56 | S'reference auth_user' 57 | p18 58 | ssS'description' 59 | p19 60 | (dp20 61 | g4 62 | I32768 63 | sg5 64 | I00 65 | sg6 66 | I6 67 | sg7 68 | S'TEXT' 69 | p21 70 | sg9 71 | I00 72 | sg10 73 | S'text' 74 | p22 75 | ssS'time_stamp' 76 | p23 77 | (dp24 78 | g4 79 | I512 80 | sg5 81 | I00 82 | sg6 83 | I2 84 | sg7 85 | S'TIMESTAMP' 86 | p25 87 | sg9 88 | I00 89 | sg10 90 | S'datetime' 91 | p26 92 | ssS'id' 93 | p27 94 | (dp28 95 | g4 96 | I512 97 | sg5 98 | I00 99 | sg6 100 | I1 101 | sg7 102 | S'INTEGER PRIMARY KEY AUTOINCREMENT' 103 | p29 104 | sg9 105 | I00 106 | sg10 107 | g27 108 | ss. -------------------------------------------------------------------------------- /databases/c8b669d15150d7109e5f7ab36744a5b7_auth_group.table: -------------------------------------------------------------------------------- 1 | (dp1 2 | S'role' 3 | p2 4 | (dp3 5 | S'length' 6 | p4 7 | I512 8 | sS'unique' 9 | p5 10 | I00 11 | sS'sortable' 12 | p6 13 | I2 14 | sS'sql' 15 | p7 16 | S'CHAR(512)' 17 | p8 18 | sS'notnull' 19 | p9 20 | I00 21 | sS'type' 22 | p10 23 | S'string' 24 | p11 25 | ssS'id' 26 | p12 27 | (dp13 28 | g4 29 | I512 30 | sg5 31 | I00 32 | sg6 33 | I1 34 | sg7 35 | S'INTEGER PRIMARY KEY AUTOINCREMENT' 36 | p14 37 | sg9 38 | I00 39 | sg10 40 | g12 41 | ssS'description' 42 | p15 43 | (dp16 44 | g4 45 | I32768 46 | sg5 47 | I00 48 | sg6 49 | I3 50 | sg7 51 | S'TEXT' 52 | p17 53 | sg9 54 | I00 55 | sg10 56 | S'text' 57 | p18 58 | ss. -------------------------------------------------------------------------------- /databases/c8b669d15150d7109e5f7ab36744a5b7_auth_membership.table: -------------------------------------------------------------------------------- 1 | (dp1 2 | S'group_id' 3 | p2 4 | (dp3 5 | S'length' 6 | p4 7 | I512 8 | sS'unique' 9 | p5 10 | I00 11 | sS'sortable' 12 | p6 13 | I3 14 | sS'sql' 15 | p7 16 | S'INTEGER REFERENCES auth_group (id) ON DELETE CASCADE ' 17 | p8 18 | sS'notnull' 19 | p9 20 | I00 21 | sS'type' 22 | p10 23 | S'reference auth_group' 24 | p11 25 | ssS'user_id' 26 | p12 27 | (dp13 28 | g4 29 | I512 30 | sg5 31 | I00 32 | sg6 33 | I2 34 | sg7 35 | S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE ' 36 | p14 37 | sg9 38 | I00 39 | sg10 40 | S'reference auth_user' 41 | p15 42 | ssS'id' 43 | p16 44 | (dp17 45 | g4 46 | I512 47 | sg5 48 | I00 49 | sg6 50 | I1 51 | sg7 52 | S'INTEGER PRIMARY KEY AUTOINCREMENT' 53 | p18 54 | sg9 55 | I00 56 | sg10 57 | g16 58 | ss. -------------------------------------------------------------------------------- /databases/c8b669d15150d7109e5f7ab36744a5b7_auth_permission.table: -------------------------------------------------------------------------------- 1 | (dp1 2 | S'record_id' 3 | p2 4 | (dp3 5 | S'length' 6 | p4 7 | I512 8 | sS'unique' 9 | p5 10 | I00 11 | sS'sortable' 12 | p6 13 | I5 14 | sS'sql' 15 | p7 16 | S'INTEGER' 17 | p8 18 | sS'notnull' 19 | p9 20 | I00 21 | sS'type' 22 | p10 23 | S'integer' 24 | p11 25 | ssS'group_id' 26 | p12 27 | (dp13 28 | g4 29 | I512 30 | sg5 31 | I00 32 | sg6 33 | I2 34 | sg7 35 | S'INTEGER REFERENCES auth_group (id) ON DELETE CASCADE ' 36 | p14 37 | sg9 38 | I00 39 | sg10 40 | S'reference auth_group' 41 | p15 42 | ssS'table_name' 43 | p16 44 | (dp17 45 | g4 46 | I512 47 | sg5 48 | I00 49 | sg6 50 | I4 51 | sg7 52 | S'CHAR(512)' 53 | p18 54 | sg9 55 | I00 56 | sg10 57 | S'string' 58 | p19 59 | ssS'id' 60 | p20 61 | (dp21 62 | g4 63 | I512 64 | sg5 65 | I00 66 | sg6 67 | I1 68 | sg7 69 | S'INTEGER PRIMARY KEY AUTOINCREMENT' 70 | p22 71 | sg9 72 | I00 73 | sg10 74 | g20 75 | ssS'name' 76 | p23 77 | (dp24 78 | g4 79 | I512 80 | sg5 81 | I00 82 | sg6 83 | I3 84 | sg7 85 | S'CHAR(512)' 86 | p25 87 | sg9 88 | I00 89 | sg10 90 | g19 91 | ss. -------------------------------------------------------------------------------- /databases/c8b669d15150d7109e5f7ab36744a5b7_auth_user.table: -------------------------------------------------------------------------------- 1 | (dp1 2 | S'first_name' 3 | p2 4 | (dp3 5 | S'length' 6 | p4 7 | I128 8 | sS'unique' 9 | p5 10 | I00 11 | sS'sortable' 12 | p6 13 | I2 14 | sS'sql' 15 | p7 16 | S'CHAR(128)' 17 | p8 18 | sS'notnull' 19 | p9 20 | I00 21 | sS'type' 22 | p10 23 | S'string' 24 | p11 25 | ssS'last_name' 26 | p12 27 | (dp13 28 | g4 29 | I128 30 | sg5 31 | I00 32 | sg6 33 | I3 34 | sg7 35 | S'CHAR(128)' 36 | p14 37 | sg9 38 | I00 39 | sg10 40 | g11 41 | ssS'registration_id' 42 | p15 43 | (dp16 44 | g4 45 | I512 46 | sg5 47 | I00 48 | sg6 49 | I8 50 | sg7 51 | S'CHAR(512)' 52 | p17 53 | sg9 54 | I00 55 | sg10 56 | g11 57 | ssS'email' 58 | p18 59 | (dp19 60 | g4 61 | I512 62 | sg5 63 | I00 64 | sg6 65 | I4 66 | sg7 67 | S'CHAR(512)' 68 | p20 69 | sg9 70 | I00 71 | sg10 72 | g11 73 | ssS'reset_password_key' 74 | p21 75 | (dp22 76 | g4 77 | I512 78 | sg5 79 | I00 80 | sg6 81 | I7 82 | sg7 83 | S'CHAR(512)' 84 | p23 85 | sg9 86 | I00 87 | sg10 88 | g11 89 | ssS'password' 90 | p24 91 | (dp25 92 | g4 93 | I512 94 | sg5 95 | I00 96 | sg6 97 | I5 98 | sg7 99 | S'CHAR(512)' 100 | p26 101 | sg9 102 | I00 103 | sg10 104 | g24 105 | ssS'registration_key' 106 | p27 107 | (dp28 108 | g4 109 | I512 110 | sg5 111 | I00 112 | sg6 113 | I6 114 | sg7 115 | S'CHAR(512)' 116 | p29 117 | sg9 118 | I00 119 | sg10 120 | g11 121 | ssS'id' 122 | p30 123 | (dp31 124 | g4 125 | I512 126 | sg5 127 | I00 128 | sg6 129 | I1 130 | sg7 131 | S'INTEGER PRIMARY KEY AUTOINCREMENT' 132 | p32 133 | sg9 134 | I00 135 | sg10 136 | g30 137 | ss. -------------------------------------------------------------------------------- /databases/sql.log: -------------------------------------------------------------------------------- 1 | timestamp: 2017-03-13T15:48:56.922000 2 | CREATE TABLE auth_user( 3 | id INTEGER PRIMARY KEY AUTOINCREMENT, 4 | first_name CHAR(128), 5 | last_name CHAR(128), 6 | email CHAR(512), 7 | password CHAR(512), 8 | registration_key CHAR(512), 9 | reset_password_key CHAR(512), 10 | registration_id CHAR(512) 11 | ); 12 | success! 13 | timestamp: 2017-03-13T15:48:56.960000 14 | CREATE TABLE auth_group( 15 | id INTEGER PRIMARY KEY AUTOINCREMENT, 16 | role CHAR(512), 17 | description TEXT 18 | ); 19 | success! 20 | timestamp: 2017-03-13T15:48:56.985000 21 | CREATE TABLE auth_membership( 22 | id INTEGER PRIMARY KEY AUTOINCREMENT, 23 | user_id INTEGER REFERENCES auth_user (id) ON DELETE CASCADE , 24 | group_id INTEGER REFERENCES auth_group (id) ON DELETE CASCADE 25 | ); 26 | success! 27 | timestamp: 2017-03-13T15:48:57.021000 28 | CREATE TABLE auth_permission( 29 | id INTEGER PRIMARY KEY AUTOINCREMENT, 30 | group_id INTEGER REFERENCES auth_group (id) ON DELETE CASCADE , 31 | name CHAR(512), 32 | table_name CHAR(512), 33 | record_id INTEGER 34 | ); 35 | success! 36 | timestamp: 2017-03-13T15:48:57.050000 37 | CREATE TABLE auth_event( 38 | id INTEGER PRIMARY KEY AUTOINCREMENT, 39 | time_stamp TIMESTAMP, 40 | client_ip CHAR(512), 41 | user_id INTEGER REFERENCES auth_user (id) ON DELETE CASCADE , 42 | origin CHAR(512), 43 | description TEXT 44 | ); 45 | success! 46 | timestamp: 2017-03-13T15:48:57.076000 47 | CREATE TABLE auth_cas( 48 | id INTEGER PRIMARY KEY AUTOINCREMENT, 49 | user_id INTEGER REFERENCES auth_user (id) ON DELETE CASCADE , 50 | created_on TIMESTAMP, 51 | service CHAR(512), 52 | ticket CHAR(512), 53 | renew CHAR(1) 54 | ); 55 | success! 56 | -------------------------------------------------------------------------------- /databases/storage.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/databases/storage.sqlite -------------------------------------------------------------------------------- /languages/ar.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'ar', 4 | '!langname!': 'Arabic', 5 | '%s %%(shop)': '%s %%(shop)', 6 | '%s %%(shop[0])': '%s %%(shop[0])', 7 | '%s %%{quark[0]}': '%s %%{quark[0]}', 8 | '%s %%{shop[0]}': '%s %%{shop[0]}', 9 | '%s %%{shop}': '%s %%{shop}', 10 | '%Y-%m-%d': '%Y-%m-%d', 11 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 12 | '@markmin\x01**Hello World**': '**مرحباً بالعالم**', 13 | 'About': 'نبذة', 14 | 'Access Control': 'متحكمات الوصول', 15 | 'Administrative Interface': 'واجهة التحكم', 16 | 'Ajax Recipes': 'وصفات أجاكس', 17 | 'Are you sure you want to delete this object?': 'هل أنت متأكد بحذف هذا الكائن ؟', 18 | 'Buy this book': 'أشتري هذا الكتاب', 19 | 'Cannot be empty': 'لا يمكن بأن يكون خالي', 20 | 'Check to delete': 'أختر للحذف', 21 | 'Client IP': 'IP المستخدم', 22 | 'Community': 'المجتمع', 23 | 'Components and Plugins': 'العناصر والإضافات', 24 | 'Controller': 'متحكم', 25 | 'Copyright': 'الحقوق', 26 | 'Created By': 'أنشئ بواسطة', 27 | 'Created On': 'أنشئ في', 28 | 'customize me!': 'التخصيص', 29 | 'Database': 'قاعدة البيانات', 30 | 'DB Model': 'نموذج قاعدة البيانات', 31 | 'Demo': 'تجربة', 32 | 'Deployment Recipes': 'الوصفات المنشورة', 33 | 'Description': 'الوصف', 34 | 'Documentation': 'المستندات', 35 | "Don't know what to do?": "لا تعلم ماذا ستفعل ؟", 36 | 'Download': 'تحميل', 37 | 'E-mail': 'البريد الإلكتروني', 38 | 'Email and SMS': 'البريد الإلكتروني والرسالة النصية', 39 | 'enter an integer between %(min)g and %(max)g': 'أدخل عدد صحيح بين %(min)g و %(man)g', 40 | 'enter date and time as %(format)s': 'أدخل التاريخ والوقت كالنمط %(format)', 41 | 'Errors': 'الأخطاء', 42 | 'FAQ': 'الأسئلة الشائعة', 43 | 'First name': 'الأسم الأول', 44 | 'Forms and Validators': 'الإستمارات والمدققات', 45 | 'Free Applications': 'تطبيقات مجانية', 46 | 'Group %(group_id)s created': 'المجموعة %(group_id)s قد أنشئت', 47 | 'Group ID': 'هوية المجموعة', 48 | 'Group uniquely assigned to user %(id)s': 'المجموعة مخصصة للمستخدم %(id)s', 49 | 'Groups': 'مجموعات', 50 | 'Hello World': 'مرحباً بالعالم', 51 | 'Hello World ## comment': ' مرحباً بالعالم', 52 | 'Hello World## comment': 'مرحباً بالعالم', 53 | 'Home': 'الرئيسية', 54 | 'How did you get here?': 'كيف أستطعت الوصول إلى هنا ؟', 55 | 'Introduction': 'مقدمة', 56 | 'Invalid email': 'بريد إلكتروني غير صالح', 57 | 'Is Active': 'نشط', 58 | 'Last name': 'أسم العائلة', 59 | 'Layout': 'النسق', 60 | 'Layout Plugins': 'نسّق الإضافات', 61 | 'Layouts': 'لأنساق', 62 | 'Live Chat': 'المحادثة الحيّة', 63 | 'Logged in': 'تم تسجيل الدخول', 64 | 'Logged out': 'تم تسجيل الخروج', 65 | 'Login': 'تسجيل الدخول', 66 | 'Logout': 'تسجيل الخروج', 67 | 'Lost Password': 'فقدت كلمة المرور', 68 | 'Lost password?': 'هل فقدت كلمة المرور ؟', 69 | 'Menu Model': 'قالب القوائم', 70 | 'Modified By': 'عًدلت بواسطة', 71 | 'Modified On': 'عُدلت في', 72 | 'My Sites': 'موقعي', 73 | 'Name': 'الأسم', 74 | 'Object or table name': 'أسم الكائن أو الجدول', 75 | 'Online examples': 'أمثلة على الأنترنت', 76 | 'Origin': 'أصل', 77 | 'Other Plugins': 'إضافات أخرى', 78 | 'Other Recipes': 'وصفات أخرى', 79 | 'Overview': 'نظرة عامة', 80 | 'Password': 'كلمة المرور', 81 | "Password fields don't match": "حقول كلمة المرور لا تتطابق", 82 | 'please input your password again': 'الرجاء إعادة إدخال كلمة المرور', 83 | 'Plugins': 'الإضافات', 84 | 'Powered by': 'مدعوم بواسطة', 85 | 'Preface': 'المدخل', 86 | 'Profile': 'الملف الشخصي', 87 | 'Python': 'بايثون', 88 | 'Quick Examples': 'أمثلة سريعة', 89 | 'Recipes': 'وصفات', 90 | 'Record ID': 'هوية السجل ', 91 | 'Register': 'التسجيل', 92 | 'Registration identifier': 'مُعرف التسجيل', 93 | 'Registration key': 'رمز التسجيل', 94 | 'Registration successful': 'تم التسجيل بنجاح', 95 | 'Remember me (for 30 days)': 'تذكرني ( إلى 30 يوم)', 96 | 'Reset Password key': 'إعادة ظبط مفتاح كلمة المرور', 97 | 'Role': 'دور', 98 | 'Semantic': 'دليل لفظي', 99 | 'Services': 'خدمات', 100 | 'Stylesheet': 'أسلوب النمط', 101 | 'Support': 'الدعم', 102 | 'The Core': 'النواة', 103 | 'The output of the file is a dictionary that was rendered by the view %s': 'نتاج هذا الملف هو قاموس قًدم بواسطة العارض %s', 104 | 'The Views': 'المشاهدات', 105 | 'This App': 'هذا التطبيق', 106 | 'Timestamp': 'البصمة الزمنية', 107 | 'Twitter': 'تويتر', 108 | 'User %(id)s Logged-in': 'المستخدم %(id)s قد سجل دخوله', 109 | 'User %(id)s Logged-out': 'المستخدم %(id)s قد سجل خروجه', 110 | 'User %(id)s Registered': 'المستخدم %(id)s مسجل', 111 | 'User ID': 'هوية المستخدم', 112 | 'value already in database or empty': 'القيمة موجودة مسبقاً أو فارغة', 113 | 'Verify Password': 'تأكيد كلمة المرور', 114 | 'Videos': 'الفيديوهات', 115 | 'View': 'العرض', 116 | 'Welcome': 'مرحباً', 117 | 'Welcome to web2py!': 'مرحباً بكم في ويب2 باي !', 118 | 'Which called the function %s located in the file %s': 'الدالة المسماة %s موجودة في ملف %s', 119 | 'You are successfully running web2py': 'أستطعت تثبيت web2py بنجاح !', 120 | 'You can modify this application and adapt it to your needs': 'تستطيع تعديل هذا التطبيق لما يناسب إحتياجك', 121 | 'You visited the url %s': ' ملقد زرت الرابط %s', 122 | } 123 | -------------------------------------------------------------------------------- /languages/de.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'de', 4 | '!langname!': 'Deutsch (DE)', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '""Update" ist ein optionaler Ausdruck wie "Feld1 = \'newvalue". JOIN Ergebnisse können nicht aktualisiert oder gelöscht werden', 6 | '%s %%(shop)': '%s %%(shop)', 7 | '%s %%(shop[0])': '%s %%(shop[0])', 8 | '%s %%{quark[0]}': '%s %%{quark[0]}', 9 | '%s %%{row} deleted': '%s %%{row} deleted', 10 | '%s %%{row} updated': '%s %%{row} updated', 11 | '%s %%{shop[0]}': '%s %%{shop[0]}', 12 | '%s %%{shop}': '%s %%{shop}', 13 | '%s selected': '%s selected', 14 | '%Y-%m-%d': '%Y-%m-%d', 15 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 16 | '?': '?', 17 | '@markmin\x01**Hello World**': '**Hallo Welt**', 18 | '@markmin\x01An error occured, please [[reload %s]] the page': 'Ein Fehler ist aufgetreten, bitte [[laden %s]] Sie die Seite neu', 19 | 'About': 'Über', 20 | 'Access Control': 'Zugangskontrolle', 21 | 'Administrative Interface': 'Administrationsoberfläche', 22 | 'Ajax Recipes': 'Ajax Rezepte', 23 | 'appadmin is disabled because insecure channel': 'Appadmin ist deaktiviert, wegen der Benutzung eines unsicheren Kanals', 24 | 'Are you sure you want to delete this object?': 'Sind Sie sich sicher, dass Sie dieses Objekt löschen wollen?', 25 | 'Available Databases and Tables': 'Verfügbare Datenbanken und Tabellen', 26 | 'Buy this book': 'Dieses Buch kaufen', 27 | 'cache': 'cache', 28 | 'Cache': 'Cache', 29 | 'Cache Cleared': 'Cache geleert', 30 | 'Cache Keys': 'Cache Schlüssel', 31 | 'Cannot be empty': 'Darf nicht leer sein', 32 | 'Check to delete': 'Auswählen um zu löschen', 33 | 'Clear CACHE?': 'CACHE löschen?', 34 | 'Clear DISK': 'DISK löschen', 35 | 'Clear RAM': 'RAM löschen', 36 | 'Client IP': 'Client IP', 37 | 'Community': 'Community', 38 | 'Components and Plugins': 'Komponenten und Plugins', 39 | 'Controller': 'Controller', 40 | 'Copyright': 'Copyright', 41 | 'Created By': 'Erstellt von', 42 | 'Created On': 'Erstellt am', 43 | 'Current request': 'Derzeitiger Request', 44 | 'Current response': 'Derzeitige Response', 45 | 'Current session': 'Derzeitige Session', 46 | 'customize me!': 'Pass mich an!', 47 | 'data uploaded': 'Datei hochgeladen', 48 | 'Database': 'Datenbank', 49 | 'Database %s select': 'Datenbank %s ausgewählt', 50 | 'Database Administration (appadmin)': 'Datenbankadministration (appadmin)', 51 | 'db': 'db', 52 | 'DB Model': 'Muster-DB', 53 | 'Delete:': 'Lösche:', 54 | 'Demo': 'Demo', 55 | 'Deployment Recipes': 'Entwicklungsrezepte', 56 | 'Description': 'Beschreibung', 57 | 'design': 'Design', 58 | 'DISK': 'DISK', 59 | 'Disk Cache Keys': 'Disk Cache Keys', 60 | 'Disk Cleared': 'Disk gelöscht', 61 | 'Documentation': 'Dokumentation', 62 | "Don't know what to do?": 'Wissen Sie nicht weiter?', 63 | 'done!': 'Fertig!', 64 | 'Download': 'Download', 65 | 'E-mail': 'E-mail', 66 | 'Edit current record': 'Diesen Eintrag editieren', 67 | 'Email and SMS': 'Email und SMS', 68 | 'Enter an integer between %(min)g and %(max)g': 'Eine Zahl zwischen %(min)g und %(max)g eingeben', 69 | 'enter an integer between %(min)g and %(max)g': 'eine Zahl zwischen %(min)g und %(max)g eingeben', 70 | 'enter date and time as %(format)s': 'ein Datum und eine Uhrzeit als %(format)s eingeben', 71 | 'Errors': 'Fehlermeldungen', 72 | 'export as csv file': 'als csv Datei exportieren', 73 | 'FAQ': 'FAQ', 74 | 'First name': 'Vorname', 75 | 'Forms and Validators': 'Forms und Validators', 76 | 'Free Applications': 'Kostenlose Anwendungen', 77 | 'Graph Model': 'Muster-Graph', 78 | 'Group %(group_id)s created': 'Gruppe %(group_id)s erstellt', 79 | 'Group ID': 'Gruppen ID', 80 | 'Group uniquely assigned to user %(id)s': 'Gruppe eindeutigem Benutzer %(id)s zugewiesen', 81 | 'Groups': 'Gruppen', 82 | 'Hello World': 'Hallo Welt', 83 | 'Hello World ## Kommentar': 'Hallo Welt ', 84 | 'Hello World## Kommentar': 'Hallo Welt', 85 | 'Home': 'Startseite', 86 | 'How did you get here?': 'Wie sind Sie hier her gelangt?', 87 | 'import': 'Importieren', 88 | 'Import/Export': 'Importieren/Exportieren', 89 | 'Internal State': 'Innerer Zustand', 90 | 'Introduction': 'Einführung', 91 | 'Invalid email': 'Ungültige Email', 92 | 'Invalid Query': 'Ungültige Query', 93 | 'invalid request': 'Ungültiger Request', 94 | 'Is Active': 'Ist aktiv', 95 | 'Key': 'Schlüssel', 96 | 'Last name': 'Nachname', 97 | 'Layout': 'Layout', 98 | 'Layout Plugins': 'Layout Plugins', 99 | 'Layouts': 'Layouts', 100 | 'Live Chat': 'Live Chat', 101 | 'Logged in': 'Eingeloggt', 102 | 'Logged out': 'Ausgeloggt', 103 | 'Login': 'Einloggen', 104 | 'Logout': 'Ausloggen', 105 | 'Lost Password': 'Passwort vergessen', 106 | 'Lost password?': 'Passwort vergessen?', 107 | 'Manage %(action)s': '%(action)s verwalten', 108 | 'Manage Access Control': 'Zugangskontrolle verwalten', 109 | 'Manage Cache': 'Cache verwalten', 110 | 'Memberships': 'Mitgliedschaften', 111 | 'Menu Model': 'Menü-Muster', 112 | 'Modified By': 'Verändert von', 113 | 'Modified On': 'Verändert am', 114 | 'My Sites': 'Meine Seiten', 115 | 'Name': 'Name', 116 | 'New Record': 'Neuer Eintrag', 117 | 'new record inserted': 'neuer Eintrag hinzugefügt', 118 | 'next %s rows': 'nächste %s Reihen', 119 | 'No databases in this application': 'Keine Datenbank in dieser Anwendung', 120 | 'Object or table name': 'Objekt- oder Tabellenname', 121 | 'Online examples': 'Online Beispiele', 122 | 'or import from csv file': 'oder von csv Datei importieren', 123 | 'Origin': 'Ursprung', 124 | 'Other Plugins': 'Andere Plugins', 125 | 'Other Recipes': 'Andere Rezepte', 126 | 'Overview': 'Überblick', 127 | 'Password': 'Passwort', 128 | "Password fields don't match": 'Passwortfelder sind nicht gleich', 129 | 'Permission': 'Permission', 130 | 'Permissions': 'Permissions', 131 | 'please input your password again': 'Bitte geben Sie ihr Passwort erneut ein', 132 | 'Plugins': 'Plugins', 133 | 'Powered by': 'Unterstützt von', 134 | 'Preface': 'Allgemeines', 135 | 'previous %s rows': 'vorherige %s Reihen', 136 | 'Profile': 'Profil', 137 | 'pygraphviz library not found': 'pygraphviz Bibliothek wurde nicht gefunden', 138 | 'Python': 'Python', 139 | 'Query:': 'Query:', 140 | 'Quick Examples': 'Kurze Beispiele', 141 | 'RAM': 'RAM', 142 | 'RAM Cache Keys': 'RAM Cache Keys', 143 | 'Ram Cleared': 'Ram Cleared', 144 | 'Recipes': 'Rezepte', 145 | 'Record': 'Eintrag', 146 | 'record does not exist': 'Eintrag existiert nicht', 147 | 'Record ID': 'ID des Eintrags', 148 | 'Record id': 'id des Eintrags', 149 | 'Register': 'Register', 150 | 'Registration identifier': 'Registrierungsbezeichnung', 151 | 'Registration key': 'Registierungsschlüssel', 152 | 'Registration successful': 'Registrierung erfolgreich', 153 | 'Remember me (for 30 days)': 'Eingeloggt bleiben (30 Tage lang)', 154 | 'Reset Password key': 'Passwortschlüssel zurücksetzen', 155 | 'Role': 'Rolle', 156 | 'Roles': 'Rollen', 157 | 'Rows in Table': 'Tabellenreihen', 158 | 'Rows selected': 'Reihen ausgewählt', 159 | 'Save model as...': 'Speichere Vorlage als...', 160 | 'Semantic': 'Semantik', 161 | 'Services': 'Dienste', 162 | 'Size of cache:': 'Cachegröße:', 163 | 'state': 'Status', 164 | 'Statistics': 'Statistik', 165 | 'Stylesheet': 'Stylesheet', 166 | 'submit': 'Submit', 167 | 'Support': 'Support', 168 | 'Table': 'Tabelle', 169 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'Die "query" ist eine Bedingung wie "db.tabelle1.feld1==\'wert\'". So etwas wie "db.tabelle1.feld1==db.tabelle2.feld2" resultiert in einem SQL JOIN.', 170 | 'The Core': 'Der Core', 171 | 'The output of the file is a dictionary that was rendered by the view %s': 'Die Ausgabe der Datei ist ein "dictionary", welches vom "view" %s gerendert wurde', 172 | 'The Views': 'Die Views', 173 | 'This App': 'Diese App', 174 | 'This email already has an account': 'This email already has an account', 175 | 'Time in Cache (h:m:s)': 'Zeit im Cache (h:m:s)', 176 | 'Timestamp': 'Zeitstempel', 177 | 'Traceback': 'Traceback', 178 | 'Twitter': 'Twitter', 179 | 'unable to parse csv file': 'csv Datei konnte nicht geparst werden', 180 | 'Update:': 'Update:', 181 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Benutze (...)&(...) für AND, (...)|(...) für OR, und ~(...) für NOT um komplexere Queries zu erstellen.', 182 | 'User': 'Benutzer', 183 | 'User %(id)s Logged-in': 'Benutzer %(id)s hat sich eingeloggt', 184 | 'User %(id)s Logged-out': 'Benutzer %(id)s hat sich ausgeloggt', 185 | 'User %(id)s Registered': 'Benutzer %(id)s hat sich registriert', 186 | 'User ID': 'Benutzer ID', 187 | 'Users': 'Benutzer', 188 | 'value already in database or empty': 'Wert ist bereits in der Datenbank oder leer', 189 | 'Verify Password': 'Passwort überprüfen', 190 | 'Videos': 'Videos', 191 | 'View': 'Ansicht', 192 | 'Welcome': 'Willkommen', 193 | 'Welcome to web2py!': 'Willkommen bei web2py!', 194 | 'Which called the function %s located in the file %s': 'Welche die Funktion %s in der Datei %s aufrief', 195 | 'Working...': 'Arbeite...', 196 | 'You are successfully running web2py': 'web2py wird erfolgreich ausgeführt', 197 | 'You can modify this application and adapt it to your needs': 'Sie können diese Anwendung verändern und Ihren Bedürfnissen anpassen', 198 | 'You visited the url %s': 'Sie haben die URL %s besucht', 199 | } 200 | -------------------------------------------------------------------------------- /languages/default.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'en-us', 4 | '!langname!': 'English (US)', 5 | '%s %%(shop)': '%s %%(shop)', 6 | '%s %%(shop[0])': '%s %%(shop[0])', 7 | '%s %%{quark[0]}': '%s %%{quark[0]}', 8 | '%s %%{shop[0]}': '%s %%{shop[0]}', 9 | '%s %%{shop}': '%s %%{shop}', 10 | '%Y-%m-%d': '%Y-%m-%d', 11 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 12 | '@markmin\x01**Hello World**': '**Hello World**', 13 | 'About': 'About', 14 | 'Access Control': 'Access Control', 15 | 'Administrative Interface': 'Administrative Interface', 16 | 'Ajax Recipes': 'Ajax Recipes', 17 | 'Are you sure you want to delete this object?': 'Are you sure you want to delete this object?', 18 | 'Buy this book': 'Buy this book', 19 | 'Cannot be empty': 'Cannot be empty', 20 | 'Check to delete': 'Check to delete', 21 | 'Client IP': 'Client IP', 22 | 'Community': 'Community', 23 | 'Components and Plugins': 'Components and Plugins', 24 | 'Controller': 'Controller', 25 | 'Copyright': 'Copyright', 26 | 'Created By': 'Created By', 27 | 'Created On': 'Created On', 28 | 'customize me!': 'customize me!', 29 | 'Database': 'Database', 30 | 'DB Model': 'DB Model', 31 | 'Demo': 'Demo', 32 | 'Deployment Recipes': 'Deployment Recipes', 33 | 'Description': 'Description', 34 | 'Documentation': 'Documentation', 35 | "Don't know what to do?": "Don't know what to do?", 36 | 'Download': 'Download', 37 | 'E-mail': 'E-mail', 38 | 'Email and SMS': 'Email and SMS', 39 | 'enter an integer between %(min)g and %(max)g': 'enter an integer between %(min)g and %(max)g', 40 | 'enter date and time as %(format)s': 'enter date and time as %(format)s', 41 | 'Errors': 'Errors', 42 | 'FAQ': 'FAQ', 43 | 'First name': 'First name', 44 | 'Forms and Validators': 'Forms and Validators', 45 | 'Free Applications': 'Free Applications', 46 | 'Group %(group_id)s created': 'Group %(group_id)s created', 47 | 'Group ID': 'Group ID', 48 | 'Group uniquely assigned to user %(id)s': 'Group uniquely assigned to user %(id)s', 49 | 'Groups': 'Groups', 50 | 'Hello World': 'Hello World', 51 | 'Hello World ## comment': 'Hello World ', 52 | 'Hello World## comment': 'Hello World', 53 | 'Home': 'Home', 54 | 'How did you get here?': 'How did you get here?', 55 | 'Introduction': 'Introduction', 56 | 'Invalid email': 'Invalid email', 57 | 'Is Active': 'Is Active', 58 | 'Last name': 'Last name', 59 | 'Layout': 'Layout', 60 | 'Layout Plugins': 'Layout Plugins', 61 | 'Layouts': 'Layouts', 62 | 'Live Chat': 'Live Chat', 63 | 'Logged in': 'Logged in', 64 | 'Logged out': 'Logged out', 65 | 'Login': 'Login', 66 | 'Logout': 'Logout', 67 | 'Lost Password': 'Lost Password', 68 | 'Lost password?': 'Lost password?', 69 | 'Menu Model': 'Menu Model', 70 | 'Modified By': 'Modified By', 71 | 'Modified On': 'Modified On', 72 | 'My Sites': 'My Sites', 73 | 'Name': 'Name', 74 | 'Object or table name': 'Object or table name', 75 | 'Online examples': 'Online examples', 76 | 'Origin': 'Origin', 77 | 'Other Plugins': 'Other Plugins', 78 | 'Other Recipes': 'Other Recipes', 79 | 'Overview': 'Overview', 80 | 'Password': 'Password', 81 | "Password fields don't match": "Password fields don't match", 82 | 'please input your password again': 'please input your password again', 83 | 'Plugins': 'Plugins', 84 | 'Powered by': 'Powered by', 85 | 'Preface': 'Preface', 86 | 'Profile': 'Profile', 87 | 'Python': 'Python', 88 | 'Quick Examples': 'Quick Examples', 89 | 'Recipes': 'Recipes', 90 | 'Record ID': 'Record ID', 91 | 'Register': 'Register', 92 | 'Registration identifier': 'Registration identifier', 93 | 'Registration key': 'Registration key', 94 | 'Registration successful': 'Registration successful', 95 | 'Remember me (for 30 days)': 'Remember me (for 30 days)', 96 | 'Reset Password key': 'Reset Password key', 97 | 'Role': 'Role', 98 | 'Semantic': 'Semantic', 99 | 'Services': 'Services', 100 | 'Stylesheet': 'Stylesheet', 101 | 'Support': 'Support', 102 | 'The Core': 'The Core', 103 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 104 | 'The Views': 'The Views', 105 | 'This App': 'This App', 106 | 'Timestamp': 'Timestamp', 107 | 'Twitter': 'Twitter', 108 | 'User %(id)s Logged-in': 'User %(id)s Logged-in', 109 | 'User %(id)s Logged-out': 'User %(id)s Logged-out', 110 | 'User %(id)s Registered': 'User %(id)s Registered', 111 | 'User ID': 'User ID', 112 | 'value already in database or empty': 'value already in database or empty', 113 | 'Verify Password': 'Verify Password', 114 | 'Videos': 'Videos', 115 | 'View': 'View', 116 | 'Welcome': 'Welcome', 117 | 'Welcome to web2py!': 'Welcome to web2py!', 118 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 119 | 'You are successfully running web2py': 'You are successfully running web2py', 120 | 'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs', 121 | 'You visited the url %s': 'You visited the url %s', 122 | } 123 | -------------------------------------------------------------------------------- /languages/fr-ca.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'fr-ca', 4 | '!langname!': 'Français (Canadien)', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" est une expression optionnelle comme "champ1=\'nouvellevaleur\'". Vous ne pouvez mettre à jour ou supprimer les résultats d\'un JOIN', 6 | '%s %%{row} deleted': '%s rangées supprimées', 7 | '%s %%{row} updated': '%s rangées mises à jour', 8 | '%s selected': '%s sélectionné', 9 | '%Y-%m-%d': '%Y-%m-%d', 10 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 11 | 'about': 'à propos', 12 | 'About': 'À propos', 13 | 'Access Control': "Contrôle d'accès", 14 | 'Administrative Interface': 'Administrative Interface', 15 | 'Administrative interface': "Interface d'administration", 16 | 'Ajax Recipes': 'Recettes Ajax', 17 | 'appadmin is disabled because insecure channel': "appadmin est désactivée parce que le canal n'est pas sécurisé", 18 | 'Are you sure you want to delete this object?': 'Êtes-vous sûr de vouloir supprimer cet objet?', 19 | 'Authentication': 'Authentification', 20 | 'Available Databases and Tables': 'Bases de données et tables disponibles', 21 | 'Buy this book': 'Acheter ce livre', 22 | 'cache': 'cache', 23 | 'Cache': 'Cache', 24 | 'Cache Keys': 'Cache Keys', 25 | 'Cannot be empty': 'Ne peut pas être vide', 26 | 'change password': 'changer le mot de passe', 27 | 'Check to delete': 'Cliquez pour supprimer', 28 | 'Check to delete:': 'Cliquez pour supprimer:', 29 | 'Clear CACHE?': 'Clear CACHE?', 30 | 'Clear DISK': 'Clear DISK', 31 | 'Clear RAM': 'Clear RAM', 32 | 'Client IP': 'IP client', 33 | 'Community': 'Communauté', 34 | 'Components and Plugins': 'Components and Plugins', 35 | 'Controller': 'Contrôleur', 36 | 'Copyright': "Droit d'auteur", 37 | 'Current request': 'Demande actuelle', 38 | 'Current response': 'Réponse actuelle', 39 | 'Current session': 'Session en cours', 40 | 'customize me!': 'personnalisez-moi!', 41 | 'data uploaded': 'données téléchargées', 42 | 'Database': 'base de données', 43 | 'Database %s select': 'base de données %s select', 44 | 'db': 'db', 45 | 'DB Model': 'Modèle DB', 46 | 'Delete:': 'Supprimer:', 47 | 'Demo': 'Démo', 48 | 'Deployment Recipes': 'Recettes de déploiement ', 49 | 'Description': 'Descriptif', 50 | 'design': 'design', 51 | 'DISK': 'DISK', 52 | 'Disk Cache Keys': 'Disk Cache Keys', 53 | 'Disk Cleared': 'Disk Cleared', 54 | 'Documentation': 'Documentation', 55 | "Don't know what to do?": "Don't know what to do?", 56 | 'done!': 'fait!', 57 | 'Download': 'Téléchargement', 58 | 'E-mail': 'Courriel', 59 | 'Edit': 'Éditer', 60 | 'Edit current record': "Modifier l'enregistrement courant", 61 | 'edit profile': 'modifier le profil', 62 | 'Edit This App': 'Modifier cette application', 63 | 'Email and SMS': 'Email and SMS', 64 | 'enter an integer between %(min)g and %(max)g': 'entrer un entier compris entre %(min)g et %(max)g', 65 | 'Errors': 'Erreurs', 66 | 'export as csv file': 'exporter sous forme de fichier csv', 67 | 'FAQ': 'faq', 68 | 'First name': 'Prénom', 69 | 'Forms and Validators': 'Formulaires et Validateurs', 70 | 'Free Applications': 'Applications gratuites', 71 | 'Function disabled': 'Fonction désactivée', 72 | 'Group %(group_id)s created': '%(group_id)s groupe créé', 73 | 'Group ID': 'Groupe ID', 74 | 'Group uniquely assigned to user %(id)s': "Groupe unique attribué à l'utilisateur %(id)s", 75 | 'Groups': 'Groupes', 76 | 'Hello World': 'Bonjour le monde', 77 | 'Home': 'Accueil', 78 | 'How did you get here?': 'How did you get here?', 79 | 'import': 'import', 80 | 'Import/Export': 'Importer/Exporter', 81 | 'Index': 'Index', 82 | 'insert new': 'insérer un nouveau', 83 | 'insert new %s': 'insérer un nouveau %s', 84 | 'Internal State': 'État interne', 85 | 'Introduction': 'Présentation', 86 | 'Invalid email': 'Courriel invalide', 87 | 'Invalid Query': 'Requête Invalide', 88 | 'invalid request': 'requête invalide', 89 | 'Key': 'Key', 90 | 'Last name': 'Nom', 91 | 'Layout': 'Mise en page', 92 | 'Layout Plugins': 'Layout Plugins', 93 | 'Layouts': 'layouts', 94 | 'Live chat': 'Clavardage en direct', 95 | 'Live Chat': 'Live Chat', 96 | 'Logged in': 'Connecté', 97 | 'login': 'connectez-vous', 98 | 'Login': 'Connectez-vous', 99 | 'logout': 'déconnectez-vous', 100 | 'lost password': 'mot de passe perdu', 101 | 'Lost Password': 'Mot de passe perdu', 102 | 'lost password?': 'mot de passe perdu?', 103 | 'Main Menu': 'Menu principal', 104 | 'Manage Cache': 'Manage Cache', 105 | 'Menu Model': 'Menu modèle', 106 | 'My Sites': 'My Sites', 107 | 'Name': 'Nom', 108 | 'New Record': 'Nouvel enregistrement', 109 | 'new record inserted': 'nouvel enregistrement inséré', 110 | 'next 100 rows': '100 prochaines lignes', 111 | 'No databases in this application': "Cette application n'a pas de bases de données", 112 | 'Online examples': 'Exemples en ligne', 113 | 'or import from csv file': "ou importer d'un fichier CSV", 114 | 'Origin': 'Origine', 115 | 'Other Plugins': 'Other Plugins', 116 | 'Other Recipes': 'Autres recettes', 117 | 'Overview': 'Présentation', 118 | 'password': 'mot de passe', 119 | 'Password': 'Mot de passe', 120 | "Password fields don't match": 'Les mots de passe ne correspondent pas', 121 | 'please input your password again': "S'il vous plaît entrer votre mot de passe", 122 | 'Plugins': 'Plugiciels', 123 | 'Powered by': 'Alimenté par', 124 | 'Preface': 'Préface', 125 | 'previous 100 rows': '100 lignes précédentes', 126 | 'profile': 'profile', 127 | 'Python': 'Python', 128 | 'Query:': 'Requête:', 129 | 'Quick Examples': 'Examples Rapides', 130 | 'RAM': 'RAM', 131 | 'RAM Cache Keys': 'RAM Cache Keys', 132 | 'Ram Cleared': 'Ram Cleared', 133 | 'Readme': 'Lisez-moi', 134 | 'Recipes': 'Recettes', 135 | 'Record': 'enregistrement', 136 | 'Record %(id)s created': 'Record %(id)s created', 137 | 'Record %(id)s updated': 'Record %(id)s updated', 138 | 'Record Created': 'Record Created', 139 | 'record does not exist': "l'archive n'existe pas", 140 | 'Record ID': "ID d'enregistrement", 141 | 'Record id': "id d'enregistrement", 142 | 'Record Updated': 'Record Updated', 143 | 'Register': "S'inscrire", 144 | 'register': "s'inscrire", 145 | 'Registration key': "Clé d'enregistrement", 146 | 'Registration successful': 'Inscription réussie', 147 | 'Remember me (for 30 days)': 'Se souvenir de moi (pendant 30 jours)', 148 | 'Request reset password': 'Demande de réinitialiser le mot clé', 149 | 'Reset Password key': 'Réinitialiser le mot clé', 150 | 'Resources': 'Ressources', 151 | 'Role': 'Rôle', 152 | 'Rows in Table': 'Lignes du tableau', 153 | 'Rows selected': 'Lignes sélectionnées', 154 | 'Semantic': 'Sémantique', 155 | 'Services': 'Services', 156 | 'Size of cache:': 'Size of cache:', 157 | 'state': 'état', 158 | 'Statistics': 'Statistics', 159 | 'Stylesheet': 'Feuille de style', 160 | 'submit': 'submit', 161 | 'Submit': 'Soumettre', 162 | 'Support': 'Soutien', 163 | 'Sure you want to delete this object?': 'Êtes-vous sûr de vouloir supprimer cet objet?', 164 | 'Table': 'tableau', 165 | 'Table name': 'Nom du tableau', 166 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'La "query" est une condition comme "db.table1.champ1==\'valeur\'". Quelque chose comme "db.table1.champ1==db.table2.champ2" résulte en un JOIN SQL.', 167 | 'The Core': 'Le noyau', 168 | 'The output of the file is a dictionary that was rendered by the view %s': 'La sortie de ce fichier est un dictionnaire qui été restitué par la vue %s', 169 | 'The Views': 'Les Vues', 170 | 'This App': 'Cette Appli', 171 | 'This is a copy of the scaffolding application': "Ceci est une copie de l'application échafaudage", 172 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 173 | 'Timestamp': 'Horodatage', 174 | 'Twitter': 'Twitter', 175 | 'unable to parse csv file': "incapable d'analyser le fichier cvs", 176 | 'Update:': 'Mise à jour:', 177 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Employez (...)&(...) pour AND, (...)|(...) pour OR, and ~(...) pour NOT pour construire des requêtes plus complexes.', 178 | 'User %(id)s Logged-in': 'Utilisateur %(id)s connecté', 179 | 'User %(id)s Registered': 'Utilisateur %(id)s enregistré', 180 | 'User ID': 'ID utilisateur', 181 | 'User Voice': 'User Voice', 182 | 'value already in database or empty': 'valeur déjà dans la base ou vide', 183 | 'Verify Password': 'Vérifiez le mot de passe', 184 | 'Videos': 'Vidéos', 185 | 'View': 'Présentation', 186 | 'Web2py': 'Web2py', 187 | 'Welcome': 'Bienvenu', 188 | 'Welcome %s': 'Bienvenue %s', 189 | 'Welcome to web2py': 'Bienvenue à web2py', 190 | 'Welcome to web2py!': 'Welcome to web2py!', 191 | 'Which called the function %s located in the file %s': 'Qui a appelé la fonction %s se trouvant dans le fichier %s', 192 | 'You are successfully running web2py': 'Vous roulez avec succès web2py', 193 | 'You can modify this application and adapt it to your needs': "Vous pouvez modifier cette application et l'adapter à vos besoins", 194 | 'You visited the url %s': "Vous avez visité l'URL %s", 195 | } 196 | -------------------------------------------------------------------------------- /languages/fr.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'fr', 4 | '!langname!': 'Français', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" est une expression optionnelle comme "champ1=\'nouvellevaleur\'". Vous ne pouvez mettre à jour ou supprimer les résultats d\'un JOIN', 6 | '%s %%{row} deleted': '%s lignes supprimées', 7 | '%s %%{row} updated': '%s lignes mises à jour', 8 | '%s selected': '%s sélectionné', 9 | '%Y-%m-%d': '%Y-%m-%d', 10 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 11 | 'About': 'À propos', 12 | 'Access Control': "Contrôle d'accès", 13 | 'Administrative Interface': "Interface d'administration", 14 | 'Administrative interface': "Interface d'administration", 15 | 'Ajax Recipes': 'Recettes Ajax', 16 | 'appadmin is disabled because insecure channel': "appadmin est désactivée parce que le canal n'est pas sécurisé", 17 | 'Are you sure you want to delete this object?': 'Êtes-vous sûr de vouloir supprimer cet objet?', 18 | 'Authentication': 'Authentification', 19 | 'Available Databases and Tables': 'Bases de données et tables disponibles', 20 | 'Buy this book': 'Acheter ce livre', 21 | 'cache': 'cache', 22 | 'Cache': 'Cache', 23 | 'Cache Keys': 'Clés de cache', 24 | 'Cannot be empty': 'Ne peut pas être vide', 25 | 'change password': 'changer le mot de passe', 26 | 'Check to delete': 'Cliquez pour supprimer', 27 | 'Check to delete:': 'Cliquez pour supprimer:', 28 | 'Clear CACHE?': 'Vider le CACHE?', 29 | 'Clear DISK': 'Vider le DISQUE', 30 | 'Clear RAM': 'Vider la RAM', 31 | 'Client IP': 'IP client', 32 | 'Community': 'Communauté', 33 | 'Components and Plugins': 'Composants et Plugins', 34 | 'Controller': 'Contrôleur', 35 | 'Copyright': 'Copyright', 36 | 'Created By': 'Créé par', 37 | 'Created On': 'Créé le', 38 | 'Current request': 'Demande actuelle', 39 | 'Current response': 'Réponse actuelle', 40 | 'Current session': 'Session en cours', 41 | 'customize me!': 'personnalisez-moi!', 42 | 'data uploaded': 'données téléchargées', 43 | 'Database': 'base de données', 44 | 'Database %s select': 'base de données %s selectionnée', 45 | 'db': 'bdd', 46 | 'DB Model': 'Modèle BDD', 47 | 'Delete:': 'Supprimer:', 48 | 'Demo': 'Démo', 49 | 'Deployment Recipes': 'Recettes de déploiement', 50 | 'Description': 'Description', 51 | 'design': 'design', 52 | 'DISK': 'DISQUE', 53 | 'Disk Cache Keys': 'Clés de cache du disque', 54 | 'Disk Cleared': 'Disque vidé', 55 | 'Documentation': 'Documentation', 56 | "Don't know what to do?": 'Vous ne savez pas quoi faire?', 57 | 'done!': 'fait!', 58 | 'Download': 'Téléchargement', 59 | 'E-mail': 'E-mail', 60 | 'Edit': 'Éditer', 61 | 'Edit current record': "Modifier l'enregistrement courant", 62 | 'edit profile': 'modifier le profil', 63 | 'Edit This App': 'Modifier cette application', 64 | 'Email and SMS': 'Email et SMS', 65 | 'enter an integer between %(min)g and %(max)g': 'entrez un entier entre %(min)g et %(max)g', 66 | 'Errors': 'Erreurs', 67 | 'export as csv file': 'exporter sous forme de fichier csv', 68 | 'FAQ': 'FAQ', 69 | 'First name': 'Prénom', 70 | 'Forms and Validators': 'Formulaires et Validateurs', 71 | 'Free Applications': 'Applications gratuites', 72 | 'Function disabled': 'Fonction désactivée', 73 | 'Group ID': 'Groupe ID', 74 | 'Groups': 'Groupes', 75 | 'Hello World': 'Bonjour le monde', 76 | 'Home': 'Accueil', 77 | 'How did you get here?': 'Comment êtes-vous arrivé ici?', 78 | 'import': 'import', 79 | 'Import/Export': 'Importer/Exporter', 80 | 'Index': 'Index', 81 | 'insert new': 'insérer un nouveau', 82 | 'insert new %s': 'insérer un nouveau %s', 83 | 'Internal State': 'État interne', 84 | 'Introduction': 'Introduction', 85 | 'Invalid email': 'E-mail invalide', 86 | 'Invalid Query': 'Requête Invalide', 87 | 'invalid request': 'requête invalide', 88 | 'Is Active': 'Est actif', 89 | 'Key': 'Clé', 90 | 'Last name': 'Nom', 91 | 'Layout': 'Mise en page', 92 | 'Layout Plugins': 'Plugins de mise en page', 93 | 'Layouts': 'Mises en page', 94 | 'Live chat': 'Chat en direct', 95 | 'Live Chat': 'Chat en direct', 96 | 'login': 'connectez-vous', 97 | 'Login': 'Connectez-vous', 98 | 'logout': 'déconnectez-vous', 99 | 'lost password': 'mot de passe perdu', 100 | 'Lost Password': 'Mot de passe perdu', 101 | 'Lost password?': 'Mot de passe perdu?', 102 | 'lost password?': 'mot de passe perdu?', 103 | 'Main Menu': 'Menu principal', 104 | 'Manage Cache': 'Gérer le Cache', 105 | 'Menu Model': 'Menu modèle', 106 | 'Modified By': 'Modifié par', 107 | 'Modified On': 'Modifié le', 108 | 'My Sites': 'Mes sites', 109 | 'Name': 'Nom', 110 | 'New Record': 'Nouvel enregistrement', 111 | 'new record inserted': 'nouvel enregistrement inséré', 112 | 'next 100 rows': '100 prochaines lignes', 113 | 'No databases in this application': "Cette application n'a pas de bases de données", 114 | 'Object or table name': 'Objet ou nom de table', 115 | 'Online examples': 'Exemples en ligne', 116 | 'or import from csv file': "ou importer d'un fichier CSV", 117 | 'Origin': 'Origine', 118 | 'Other Plugins': 'Autres Plugins', 119 | 'Other Recipes': 'Autres recettes', 120 | 'Overview': 'Présentation', 121 | 'Password': 'Mot de passe', 122 | "Password fields don't match": 'Les mots de passe ne correspondent pas', 123 | 'Plugins': 'Plugins', 124 | 'Powered by': 'Alimenté par', 125 | 'Preface': 'Préface', 126 | 'previous 100 rows': '100 lignes précédentes', 127 | 'Python': 'Python', 128 | 'Query:': 'Requête:', 129 | 'Quick Examples': 'Exemples Rapides', 130 | 'RAM': 'RAM', 131 | 'RAM Cache Keys': 'Clés de cache de la RAM', 132 | 'Ram Cleared': 'Ram vidée', 133 | 'Readme': 'Lisez-moi', 134 | 'Recipes': 'Recettes', 135 | 'Record': 'enregistrement', 136 | 'record does not exist': "l'archive n'existe pas", 137 | 'Record ID': "ID d'enregistrement", 138 | 'Record id': "id d'enregistrement", 139 | 'Register': "S'inscrire", 140 | 'register': "s'inscrire", 141 | 'Registration identifier': "Identifiant d'enregistrement", 142 | 'Registration key': "Clé d'enregistrement", 143 | 'Remember me (for 30 days)': 'Se souvenir de moi (pendant 30 jours)', 144 | 'Request reset password': 'Demande de réinitialiser le mot clé', 145 | 'Reset Password key': 'Réinitialiser le mot clé', 146 | 'Resources': 'Ressources', 147 | 'Role': 'Rôle', 148 | 'Rows in Table': 'Lignes du tableau', 149 | 'Rows selected': 'Lignes sélectionnées', 150 | 'Semantic': 'Sémantique', 151 | 'Services': 'Services', 152 | 'Size of cache:': 'Taille du cache:', 153 | 'state': 'état', 154 | 'Statistics': 'Statistiques', 155 | 'Stylesheet': 'Feuille de style', 156 | 'submit': 'soumettre', 157 | 'Submit': 'Soumettre', 158 | 'Support': 'Support', 159 | 'Sure you want to delete this object?': 'Êtes-vous sûr de vouloir supprimer cet objet?', 160 | 'Table': 'tableau', 161 | 'Table name': 'Nom du tableau', 162 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'La "requête" est une condition comme "db.table1.champ1==\'valeur\'". Quelque chose comme "db.table1.champ1==db.table2.champ2" résulte en un JOIN SQL.', 163 | 'The Core': 'Le noyau', 164 | 'The output of the file is a dictionary that was rendered by the view %s': 'La sortie de ce fichier est un dictionnaire qui été restitué par la vue %s', 165 | 'The Views': 'Les Vues', 166 | 'This App': 'Cette Appli', 167 | 'This is a copy of the scaffolding application': "Ceci est une copie de l'application échafaudage", 168 | 'Time in Cache (h:m:s)': 'Temps en Cache (h:m:s)', 169 | 'Timestamp': 'Horodatage', 170 | 'Twitter': 'Twitter', 171 | 'unable to parse csv file': "incapable d'analyser le fichier cvs", 172 | 'Update:': 'Mise à jour:', 173 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Employez (...)&(...) pour AND, (...)|(...) pour OR, and ~(...) pour NOT afin de construire des requêtes plus complexes.', 174 | 'User %(id)s Logged-in': 'Utilisateur %(id)s connecté', 175 | 'User %(id)s Registered': 'Utilisateur %(id)s enregistré', 176 | 'User ID': 'ID utilisateur', 177 | 'User Voice': "Voix de l'utilisateur", 178 | 'Verify Password': 'Vérifiez le mot de passe', 179 | 'Videos': 'Vidéos', 180 | 'View': 'Présentation', 181 | 'Web2py': 'Web2py', 182 | 'Welcome': 'Bienvenue', 183 | 'Welcome %s': 'Bienvenue %s', 184 | 'Welcome to web2py': 'Bienvenue à web2py', 185 | 'Welcome to web2py!': 'Bienvenue à web2py!', 186 | 'Which called the function %s located in the file %s': 'Qui a appelé la fonction %s se trouvant dans le fichier %s', 187 | 'You are successfully running web2py': 'Vous exécutez avec succès web2py', 188 | 'You can modify this application and adapt it to your needs': "Vous pouvez modifier cette application et l'adapter à vos besoins", 189 | 'You visited the url %s': "Vous avez visité l'URL %s", 190 | } 191 | -------------------------------------------------------------------------------- /languages/hi.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'hi-in', 4 | '!langname!': 'हिन्दी', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN', 6 | '%s %%{row} deleted': '%s पंक्तियाँ मिटाएँ', 7 | '%s %%{row} updated': '%s पंक्तियाँ अद्यतन', 8 | '%s selected': '%s चुना हुआ', 9 | '%Y-%m-%d': '%Y-%m-%d', 10 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 11 | 'About': 'About', 12 | 'Access Control': 'Access Control', 13 | 'Administrative Interface': 'Administrative Interface', 14 | 'Administrative interface': 'प्रशासनिक इंटरफेस के लिए यहाँ क्लिक करें', 15 | 'Ajax Recipes': 'Ajax Recipes', 16 | 'appadmin is disabled because insecure channel': 'अप आडमिन (appadmin) अक्षम है क्योंकि असुरक्षित चैनल', 17 | 'Are you sure you want to delete this object?': 'Are you sure you want to delete this object?', 18 | 'Available Databases and Tables': 'उपलब्ध डेटाबेस और तालिका', 19 | 'Buy this book': 'Buy this book', 20 | 'cache': 'cache', 21 | 'Cache': 'Cache', 22 | 'Cache Keys': 'Cache Keys', 23 | 'Cannot be empty': 'खाली नहीं हो सकता', 24 | 'Change Password': 'पासवर्ड बदलें', 25 | 'change password': 'change password', 26 | 'Check to delete': 'हटाने के लिए चुनें', 27 | 'Clear CACHE?': 'Clear CACHE?', 28 | 'Clear DISK': 'Clear DISK', 29 | 'Clear RAM': 'Clear RAM', 30 | 'Community': 'Community', 31 | 'Components and Plugins': 'Components and Plugins', 32 | 'Controller': 'Controller', 33 | 'Copyright': 'Copyright', 34 | 'Current request': 'वर्तमान अनुरोध', 35 | 'Current response': 'वर्तमान प्रतिक्रिया', 36 | 'Current session': 'वर्तमान सेशन', 37 | 'customize me!': 'मुझे अनुकूलित (कस्टमाइज़) करें!', 38 | 'data uploaded': 'डाटा अपलोड सम्पन्न ', 39 | 'Database': 'डेटाबेस', 40 | 'Database %s select': 'डेटाबेस %s चुनी हुई', 41 | 'db': 'db', 42 | 'DB Model': 'DB Model', 43 | 'Delete:': 'मिटाना:', 44 | 'Demo': 'Demo', 45 | 'Deployment Recipes': 'Deployment Recipes', 46 | 'design': 'रचना करें', 47 | 'DISK': 'DISK', 48 | 'Disk Cache Keys': 'Disk Cache Keys', 49 | 'Disk Cleared': 'Disk Cleared', 50 | 'Documentation': 'Documentation', 51 | "Don't know what to do?": "Don't know what to do?", 52 | 'done!': 'हो गया!', 53 | 'Download': 'Download', 54 | 'Edit': 'Edit', 55 | 'Edit current record': 'वर्तमान रेकॉर्ड संपादित करें ', 56 | 'edit profile': 'edit profile', 57 | 'Edit Profile': 'प्रोफ़ाइल संपादित करें', 58 | 'Edit This App': 'Edit This App', 59 | 'Email and SMS': 'Email and SMS', 60 | 'Errors': 'Errors', 61 | 'export as csv file': 'csv फ़ाइल के रूप में निर्यात', 62 | 'FAQ': 'FAQ', 63 | 'Forms and Validators': 'Forms and Validators', 64 | 'Free Applications': 'Free Applications', 65 | 'Groups': 'Groups', 66 | 'Hello from MyApp': 'Hello from MyApp', 67 | 'Hello World': 'Hello World', 68 | 'Home': 'Home', 69 | 'How did you get here?': 'How did you get here?', 70 | 'import': 'import', 71 | 'Import/Export': 'आयात / निर्यात', 72 | 'Index': 'Index', 73 | 'insert new': 'नया डालें', 74 | 'insert new %s': 'नया %s डालें', 75 | 'Internal State': 'आंतरिक स्थिति', 76 | 'Introduction': 'Introduction', 77 | 'Invalid Query': 'अमान्य प्रश्न', 78 | 'invalid request': 'अवैध अनुरोध', 79 | 'Key': 'Key', 80 | 'Layout': 'Layout', 81 | 'Layout Plugins': 'Layout Plugins', 82 | 'Layouts': 'Layouts', 83 | 'Live Chat': 'Live Chat', 84 | 'login': 'login', 85 | 'Login': 'लॉग इन', 86 | 'logout': 'logout', 87 | 'Logout': 'लॉग आउट', 88 | 'Lost Password': 'पासवर्ड खो गया', 89 | 'Main Menu': 'Main Menu', 90 | 'Manage Cache': 'Manage Cache', 91 | 'Menu Model': 'Menu Model', 92 | 'My Sites': 'My Sites', 93 | 'New Record': 'नया रेकॉर्ड', 94 | 'new record inserted': 'नया रेकॉर्ड डाला', 95 | 'next 100 rows': 'अगले 100 पंक्तियाँ', 96 | 'No databases in this application': 'इस अनुप्रयोग में कोई डेटाबेस नहीं हैं', 97 | 'Online examples': 'ऑनलाइन उदाहरण के लिए यहाँ क्लिक करें', 98 | 'or import from csv file': 'या csv फ़ाइल से आयात', 99 | 'Other Plugins': 'Other Plugins', 100 | 'Other Recipes': 'Other Recipes', 101 | 'Overview': 'Overview', 102 | 'Plugins': 'Plugins', 103 | 'Powered by': 'Powered by', 104 | 'Preface': 'Preface', 105 | 'previous 100 rows': 'पिछले 100 पंक्तियाँ', 106 | 'Python': 'Python', 107 | 'Query:': 'प्रश्न:', 108 | 'Quick Examples': 'Quick Examples', 109 | 'RAM': 'RAM', 110 | 'RAM Cache Keys': 'RAM Cache Keys', 111 | 'Ram Cleared': 'Ram Cleared', 112 | 'Recipes': 'Recipes', 113 | 'Record': 'Record', 114 | 'record does not exist': 'रिकॉर्ड मौजूद नहीं है', 115 | 'Record id': 'रिकॉर्ड पहचानकर्ता (आईडी)', 116 | 'Register': 'पंजीकृत (रजिस्टर) करना ', 117 | 'register': 'register', 118 | 'Rows in Table': 'तालिका में पंक्तियाँ ', 119 | 'Rows selected': 'चयनित (चुने गये) पंक्तियाँ ', 120 | 'Semantic': 'Semantic', 121 | 'Services': 'Services', 122 | 'Size of cache:': 'Size of cache:', 123 | 'state': 'स्थिति', 124 | 'Statistics': 'Statistics', 125 | 'Stylesheet': 'Stylesheet', 126 | 'submit': 'submit', 127 | 'Support': 'Support', 128 | 'Sure you want to delete this object?': 'सुनिश्चित हैं कि आप इस वस्तु को हटाना चाहते हैं?', 129 | 'Table': 'तालिका', 130 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.', 131 | 'The Core': 'The Core', 132 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 133 | 'The Views': 'The Views', 134 | 'This App': 'This App', 135 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 136 | 'Twitter': 'Twitter', 137 | 'unable to parse csv file': 'csv फ़ाइल पार्स करने में असमर्थ', 138 | 'Update:': 'अद्यतन करना:', 139 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.', 140 | 'Videos': 'Videos', 141 | 'View': 'View', 142 | 'Welcome %s': 'Welcome %s', 143 | 'Welcome to web2py': 'वेब२पाइ (web2py) में आपका स्वागत है', 144 | 'Welcome to web2py!': 'Welcome to web2py!', 145 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 146 | 'You are successfully running web2py': 'You are successfully running web2py', 147 | 'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs', 148 | 'You visited the url %s': 'You visited the url %s', 149 | } 150 | -------------------------------------------------------------------------------- /languages/hu.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'hu', 4 | '!langname!': 'Magyar', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN', 6 | '%s %%{row} deleted': '%s sorok törlődtek', 7 | '%s %%{row} updated': '%s sorok frissítődtek', 8 | '%s selected': '%s kiválasztott', 9 | '%Y-%m-%d': '%Y.%m.%d.', 10 | '%Y-%m-%d %H:%M:%S': '%Y.%m.%d. %H:%M:%S', 11 | 'About': 'About', 12 | 'Access Control': 'Access Control', 13 | 'Administrative Interface': 'Administrative Interface', 14 | 'Administrative interface': 'az adminisztrációs felületért kattints ide', 15 | 'Ajax Recipes': 'Ajax Recipes', 16 | 'appadmin is disabled because insecure channel': 'az appadmin a biztonságtalan csatorna miatt letiltva', 17 | 'Are you sure you want to delete this object?': 'Are you sure you want to delete this object?', 18 | 'Available Databases and Tables': 'Elérhető adatbázisok és táblák', 19 | 'Buy this book': 'Buy this book', 20 | 'cache': 'gyorsítótár', 21 | 'Cache': 'Cache', 22 | 'Cache Keys': 'Cache Keys', 23 | 'Cannot be empty': 'Nem lehet üres', 24 | 'change password': 'jelszó megváltoztatása', 25 | 'Check to delete': 'Törléshez válaszd ki', 26 | 'Clear CACHE?': 'Clear CACHE?', 27 | 'Clear DISK': 'Clear DISK', 28 | 'Clear RAM': 'Clear RAM', 29 | 'Client IP': 'Client IP', 30 | 'Community': 'Community', 31 | 'Components and Plugins': 'Components and Plugins', 32 | 'Controller': 'Controller', 33 | 'Copyright': 'Copyright', 34 | 'Current request': 'Jelenlegi lekérdezés', 35 | 'Current response': 'Jelenlegi válasz', 36 | 'Current session': 'Jelenlegi folyamat', 37 | 'customize me!': 'változtass meg!', 38 | 'data uploaded': 'adat feltöltve', 39 | 'Database': 'adatbázis', 40 | 'Database %s select': 'adatbázis %s kiválasztás', 41 | 'db': 'db', 42 | 'DB Model': 'DB Model', 43 | 'Delete:': 'Töröl:', 44 | 'Demo': 'Demo', 45 | 'Deployment Recipes': 'Deployment Recipes', 46 | 'Description': 'Description', 47 | 'design': 'design', 48 | 'DISK': 'DISK', 49 | 'Disk Cache Keys': 'Disk Cache Keys', 50 | 'Disk Cleared': 'Disk Cleared', 51 | 'Documentation': 'Documentation', 52 | "Don't know what to do?": "Don't know what to do?", 53 | 'done!': 'kész!', 54 | 'Download': 'Download', 55 | 'E-mail': 'E-mail', 56 | 'Edit': 'Szerkeszt', 57 | 'Edit current record': 'Aktuális bejegyzés szerkesztése', 58 | 'edit profile': 'profil szerkesztése', 59 | 'Edit This App': 'Alkalmazást szerkeszt', 60 | 'Email and SMS': 'Email and SMS', 61 | 'Errors': 'Errors', 62 | 'export as csv file': 'exportál csv fájlba', 63 | 'FAQ': 'FAQ', 64 | 'First name': 'First name', 65 | 'Forms and Validators': 'Forms and Validators', 66 | 'Free Applications': 'Free Applications', 67 | 'Group ID': 'Group ID', 68 | 'Groups': 'Groups', 69 | 'Hello World': 'Hello Világ', 70 | 'Home': 'Home', 71 | 'How did you get here?': 'How did you get here?', 72 | 'import': 'import', 73 | 'Import/Export': 'Import/Export', 74 | 'Index': 'Index', 75 | 'insert new': 'új beillesztése', 76 | 'insert new %s': 'új beillesztése %s', 77 | 'Internal State': 'Internal State', 78 | 'Introduction': 'Introduction', 79 | 'Invalid email': 'Invalid email', 80 | 'Invalid Query': 'Hibás lekérdezés', 81 | 'invalid request': 'hibás kérés', 82 | 'Key': 'Key', 83 | 'Last name': 'Last name', 84 | 'Layout': 'Szerkezet', 85 | 'Layout Plugins': 'Layout Plugins', 86 | 'Layouts': 'Layouts', 87 | 'Live Chat': 'Live Chat', 88 | 'login': 'belép', 89 | 'logout': 'kilép', 90 | 'lost password': 'elveszett jelszó', 91 | 'Lost Password': 'Lost Password', 92 | 'Main Menu': 'Főmenü', 93 | 'Manage Cache': 'Manage Cache', 94 | 'Menu Model': 'Menü model', 95 | 'My Sites': 'My Sites', 96 | 'Name': 'Name', 97 | 'New Record': 'Új bejegyzés', 98 | 'new record inserted': 'új bejegyzés felvéve', 99 | 'next 100 rows': 'következő 100 sor', 100 | 'No databases in this application': 'Nincs adatbázis ebben az alkalmazásban', 101 | 'Online examples': 'online példákért kattints ide', 102 | 'or import from csv file': 'vagy betöltés csv fájlból', 103 | 'Origin': 'Origin', 104 | 'Other Plugins': 'Other Plugins', 105 | 'Other Recipes': 'Other Recipes', 106 | 'Overview': 'Overview', 107 | 'Password': 'Password', 108 | 'Plugins': 'Plugins', 109 | 'Powered by': 'Powered by', 110 | 'Preface': 'Preface', 111 | 'previous 100 rows': 'előző 100 sor', 112 | 'Python': 'Python', 113 | 'Query:': 'Lekérdezés:', 114 | 'Quick Examples': 'Quick Examples', 115 | 'RAM': 'RAM', 116 | 'RAM Cache Keys': 'RAM Cache Keys', 117 | 'Ram Cleared': 'Ram Cleared', 118 | 'Recipes': 'Recipes', 119 | 'Record': 'bejegyzés', 120 | 'record does not exist': 'bejegyzés nem létezik', 121 | 'Record ID': 'Record ID', 122 | 'Record id': 'bejegyzés id', 123 | 'Register': 'Register', 124 | 'register': 'regisztráció', 125 | 'Registration key': 'Registration key', 126 | 'Reset Password key': 'Reset Password key', 127 | 'Role': 'Role', 128 | 'Rows in Table': 'Sorok a táblában', 129 | 'Rows selected': 'Kiválasztott sorok', 130 | 'Semantic': 'Semantic', 131 | 'Services': 'Services', 132 | 'Size of cache:': 'Size of cache:', 133 | 'state': 'állapot', 134 | 'Statistics': 'Statistics', 135 | 'Stylesheet': 'Stylesheet', 136 | 'submit': 'submit', 137 | 'Support': 'Support', 138 | 'Sure you want to delete this object?': 'Biztos törli ezt az objektumot?', 139 | 'Table': 'tábla', 140 | 'Table name': 'Table name', 141 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.', 142 | 'The Core': 'The Core', 143 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 144 | 'The Views': 'The Views', 145 | 'This App': 'This App', 146 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 147 | 'Timestamp': 'Timestamp', 148 | 'Twitter': 'Twitter', 149 | 'unable to parse csv file': 'nem lehet a csv fájlt beolvasni', 150 | 'Update:': 'Frissít:', 151 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.', 152 | 'User ID': 'User ID', 153 | 'Videos': 'Videos', 154 | 'View': 'Nézet', 155 | 'Welcome %s': 'Welcome %s', 156 | 'Welcome to web2py': 'Isten hozott a web2py-ban', 157 | 'Welcome to web2py!': 'Welcome to web2py!', 158 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 159 | 'You are successfully running web2py': 'You are successfully running web2py', 160 | 'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs', 161 | 'You visited the url %s': 'You visited the url %s', 162 | } 163 | -------------------------------------------------------------------------------- /languages/my.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'my', 4 | '!langname!': 'Malay', 5 | '%d days ago': '%d hari yang lalu', 6 | '%d hours ago': '%d jam yang lalu', 7 | '%d minutes ago': '%d minit yang lalu', 8 | '%d months ago': '%d bulan yang lalu', 9 | '%d seconds ago': '%d saat yang lalu', 10 | '%d seconds from now': '%d saat dari sekarang', 11 | '%d weeks ago': '%d minggu yang lalu', 12 | '%d years ago': '%d tahun yang lalu', 13 | '%s %%{row} deleted': '%s %%{row} dihapuskan', 14 | '%s %%{row} updated': '%s %%{row} dikemas kini', 15 | '%s selected': '%s dipilih', 16 | '%Y-%m-%d': '%d-%m-%Y', 17 | '%Y-%m-%d %H:%M:%S': '%d-%m-%Y %H:%M:%S', 18 | '(requires internet access, experimental)': '(memerlukan akses internet, percubaan)', 19 | '(something like "it-it")': '(sesuatu seperti "it-it")', 20 | '1 day ago': '1 hari yang lalu', 21 | '1 hour ago': '1 jam yang lalu', 22 | '1 minute ago': '1 minit yang lalu', 23 | '1 month ago': '1 bulan yang lalu', 24 | '1 second ago': '1 saat yang lalu', 25 | '1 week ago': '1 minggu yang lalu', 26 | '1 year ago': '1 tahun yang lalu', 27 | '< Previous': '< Sebelumnya', 28 | 'About': 'Mengenai', 29 | 'Add': 'Tambah', 30 | 'Admin language': 'Bahasa admin', 31 | 'Administrator Password:': 'Kata laluan Administrator:', 32 | 'Ajax Recipes': 'Resipi Ajax', 33 | 'An error occured, please %s the page': 'Kesilapan telah berlaku, sila %s laman', 34 | 'And': 'Dan', 35 | 'and rename it:': 'dan menamakan itu:', 36 | 'are not used yet': 'tidak digunakan lagi', 37 | 'Are you sure you want to delete this object?': 'Apakah anda yakin anda mahu memadam ini?', 38 | 'Back': 'Kembali', 39 | 'Buy this book': 'Beli buku ini', 40 | 'cache, errors and sessions cleaned': 'cache, kesilapan dan sesi dibersihkan', 41 | 'Cancel': 'Batal', 42 | 'Cannot be empty': 'Tidak boleh kosong', 43 | 'Change admin password': 'Tukar kata laluan admin', 44 | 'Change password': 'Tukar kata laluan', 45 | 'Clean': 'Bersihkan', 46 | 'Clear': 'Hapus', 47 | 'Clear CACHE?': 'Hapus CACHE?', 48 | 'Clear DISK': 'Hapus DISK', 49 | 'Clear RAM': 'Hapus RAM', 50 | 'Click row to expand traceback': 'Klik baris untuk mengembangkan traceback', 51 | 'Close': 'Tutup', 52 | 'Community': 'Komuniti', 53 | 'Components and Plugins': 'Komponen dan Plugin', 54 | 'contains': 'mengandung', 55 | 'Copyright': 'Hak Cipta', 56 | 'Create': 'Buat', 57 | 'create file with filename:': 'mencipta fail dengan nama:', 58 | 'created by': 'dicipta oleh', 59 | 'currently running': 'sedang berjalan', 60 | 'data uploaded': 'data diunggah', 61 | 'Delete': 'Hapus', 62 | 'Delete this file (you will be asked to confirm deletion)': 'Padam fail ini (anda akan diminta untuk mengesahkan pemadaman)', 63 | 'Delete:': 'Hapus:', 64 | 'design': 'disain', 65 | 'direction: ltr': 'arah: ltr', 66 | 'Disk Cleared': 'Disk Dihapuskan', 67 | 'Documentation': 'Dokumentasi', 68 | "Don't know what to do?": 'Tidak tahu apa yang perlu dilakukan?', 69 | 'done!': 'selesai!', 70 | 'Download': 'Unduh', 71 | 'Duration': 'Tempoh', 72 | 'Email : ': 'Emel : ', 73 | 'Email sent': 'Emel dihantar', 74 | 'enter a valid email address': 'masukkan alamat emel yang benar', 75 | 'enter a valid URL': 'masukkan URL yang benar', 76 | 'enter a value': 'masukkan data', 77 | 'Error': 'Kesalahan', 78 | 'Errors': 'Kesalahan', 79 | 'export as csv file': 'eksport sebagai file csv', 80 | 'Export:': 'Eksport:', 81 | 'File': 'Fail', 82 | 'filter': 'menapis', 83 | 'First Name': 'Nama Depan', 84 | 'Forgot username?': 'Lupa nama pengguna?', 85 | 'Free Applications': 'Aplikasi Percuma', 86 | 'Gender': 'Jenis Kelamin', 87 | 'Group %(group_id)s created': 'Kumpulan %(group_id)s dicipta', 88 | 'Group uniquely assigned to user %(id)s': 'Kumpulan unik yang diberikan kepada pengguna %(id)s', 89 | 'Groups': 'Kumpulan', 90 | 'Hello World': 'Halo Dunia', 91 | 'Help': 'Bantuan', 92 | 'Home': 'Laman Utama', 93 | 'How did you get here?': 'Bagaimana kamu boleh di sini?', 94 | 'Image': 'Gambar', 95 | 'import': 'import', 96 | 'Import/Export': 'Import/Eksport', 97 | 'includes': 'termasuk', 98 | 'Install': 'Pasang', 99 | 'Installation': 'Pemasangan', 100 | 'Introduction': 'Pengenalan', 101 | 'Invalid email': 'Emel tidak benar', 102 | 'Language': 'Bahasa', 103 | 'languages': 'bahasa', 104 | 'Languages': 'Bahasa', 105 | 'Last Name': 'Nama Belakang', 106 | 'License for': 'lesen untuk', 107 | 'loading...': 'sedang memuat...', 108 | 'Logged in': 'Masuk', 109 | 'Logged out': 'Keluar', 110 | 'Login': 'Masuk', 111 | 'Logout': 'Keluar', 112 | 'Lost Password': 'Lupa Kata Laluan', 113 | 'Lost password?': 'Lupa kata laluan?', 114 | 'Maintenance': 'Penyelenggaraan', 115 | 'Manage': 'Menguruskan', 116 | 'Manage Cache': 'Menguruskan Cache', 117 | 'models': 'model', 118 | 'Models': 'Model', 119 | 'Modules': 'Modul', 120 | 'modules': 'modul', 121 | 'My Sites': 'Laman Saya', 122 | 'New': 'Baru', 123 | 'New password': 'Kata laluan baru', 124 | 'next 100 rows': '100 baris seterusnya', 125 | 'Next >': 'Seterusnya >', 126 | 'Next Page': 'Laman Seterusnya', 127 | 'No ticket_storage.txt found under /private folder': 'Ticket_storage.txt tidak dijumpai di bawah folder /private', 128 | 'not a Zip Code': 'bukan Pos', 129 | 'Old password': 'Kata laluan lama', 130 | 'Online examples': 'Contoh Online', 131 | 'Or': 'Atau', 132 | 'or alternatively': 'atau sebagai alternatif', 133 | 'Or Get from URL:': 'Atau Dapatkan dari URL:', 134 | 'or import from csv file': 'atau import dari file csv', 135 | 'Other Plugins': 'Plugin Lain', 136 | 'Other Recipes': 'Resipi Lain', 137 | 'Overview': 'Tinjauan', 138 | 'Pack all': 'Mengemaskan semua', 139 | 'Password': 'Kata laluan', 140 | 'Password changed': 'Kata laluan berubah', 141 | "Password fields don't match": 'Kata laluan tidak sama', 142 | 'please input your password again': 'sila masukan kata laluan anda lagi', 143 | 'plugins': 'plugin', 144 | 'Plugins': 'Plugin', 145 | 'Powered by': 'Disokong oleh', 146 | 'Preface': 'Pendahuluan', 147 | 'previous 100 rows': '100 baris sebelumnya', 148 | 'Previous Page': 'Laman Sebelumnya', 149 | 'private files': 'fail peribadi', 150 | 'Private files': 'Fail peribadi', 151 | 'Profile': 'Profil', 152 | 'Profile updated': 'Profil dikemaskini', 153 | 'Project Progress': 'Kemajuan Projek', 154 | 'Quick Examples': 'Contoh Cepat', 155 | 'Ram Cleared': 'Ram Dihapuskan', 156 | 'Recipes': 'Resipi', 157 | 'Register': 'Daftar', 158 | 'Registration successful': 'Pendaftaran berjaya', 159 | 'reload': 'memuat kembali', 160 | 'Reload routes': 'Memuat laluan kembali', 161 | 'Remember me (for 30 days)': 'Ingat saya (selama 30 hari)', 162 | 'Request reset password': 'Meminta reset kata laluan', 163 | 'Rows selected': 'Baris dipilih', 164 | 'Running on %s': 'Berjalan pada %s', 165 | 'Save model as...': 'Simpan model sebagai ...', 166 | 'Save profile': 'Simpan profil', 167 | 'Search': 'Cari', 168 | 'Select Files to Package': 'Pilih Fail untuk Pakej', 169 | 'Send Email': 'Kirim Emel', 170 | 'Size of cache:': 'Saiz cache:', 171 | 'Solution': 'Penyelesaian', 172 | 'starts with': 'bermula dengan', 173 | 'static': 'statik', 174 | 'Static': 'Statik', 175 | 'Statistics': 'Statistik', 176 | 'Support': 'Menyokong', 177 | 'test': 'ujian', 178 | 'There are no plugins': 'Tiada plugin', 179 | 'There are no private files': 'Tiada fail peribadi', 180 | 'These files are not served, they are only available from within your app': 'Fail-fail ini tidak disampaikan, mereka hanya boleh didapati dari dalam aplikasi anda', 181 | 'These files are served without processing, your images go here': 'Ini fail disampaikan tanpa pemprosesan, imej anda di sini', 182 | 'This App': 'App Ini', 183 | 'Time in Cache (h:m:s)': 'Waktu di Cache (h: m: s)', 184 | 'Title': 'Judul', 185 | 'To create a plugin, name a file/folder plugin_[name]': 'Untuk mencipta plugin, nama fail/folder plugin_ [nama]', 186 | 'too short': 'terlalu pendek', 187 | 'Unable to download because:': 'Tidak dapat memuat turun kerana:', 188 | 'unable to parse csv file': 'tidak mampu mengurai file csv', 189 | 'update all languages': 'mengemaskini semua bahasa', 190 | 'Update:': 'Kemas kini:', 191 | 'Upgrade': 'Menaik taraf', 192 | 'Upload': 'Unggah', 193 | 'Upload a package:': 'Unggah pakej:', 194 | 'upload file:': 'unggah fail:', 195 | 'upload plugin file:': 'unggah fail plugin:', 196 | 'User %(id)s Logged-in': 'Pengguna %(id)s Masuk', 197 | 'User %(id)s Logged-out': 'Pengguna %(id)s Keluar', 198 | 'User %(id)s Password changed': 'Pengguna %(id)s Kata Laluan berubah', 199 | 'User %(id)s Password reset': 'Pengguna %(id)s Kata Laluan telah direset', 200 | 'User %(id)s Profile updated': 'Pengguna %(id)s Profil dikemaskini', 201 | 'User %(id)s Registered': 'Pengguna %(id)s Didaftarkan', 202 | 'value not allowed': 'data tidak benar', 203 | 'Verify Password': 'Pengesahan Kata Laluan', 204 | 'Version': 'Versi', 205 | 'Versioning': 'Pembuatan Sejarah', 206 | 'View': 'Lihat', 207 | 'Views': 'Lihat', 208 | 'views': 'Lihat', 209 | 'Web Framework': 'Rangka Kerja Web', 210 | 'web2py Recent Tweets': 'Tweet terbaru web2py', 211 | 'Website': 'Laman Web', 212 | 'Welcome': 'Selamat Datang', 213 | 'Welcome to web2py!': 'Selamat Datang di web2py!', 214 | 'You are successfully running web2py': 'Anda berjaya menjalankan web2py', 215 | 'You can modify this application and adapt it to your needs': 'Anda boleh mengubah suai aplikasi ini dan menyesuaikan dengan keperluan anda', 216 | 'You visited the url %s': 'Anda melawat url %s', 217 | } 218 | -------------------------------------------------------------------------------- /languages/pl.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'pl', 4 | '!langname!': 'Polska', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"Uaktualnij" jest dodatkowym wyrażeniem postaci "pole1=\'nowawartość\'". Nie możesz uaktualnić lub usunąć wyników z JOIN:', 6 | '%s %%{row} deleted': 'Wierszy usuniętych: %s', 7 | '%s %%{row} updated': 'Wierszy uaktualnionych: %s', 8 | '%s selected': '%s wybranych', 9 | '%Y-%m-%d': '%Y-%m-%d', 10 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 11 | 'About': 'About', 12 | 'Access Control': 'Access Control', 13 | 'Administrative Interface': 'Administrative Interface', 14 | 'Administrative interface': 'Kliknij aby przejść do panelu administracyjnego', 15 | 'Ajax Recipes': 'Ajax Recipes', 16 | 'appadmin is disabled because insecure channel': 'administracja aplikacji wyłączona z powodu braku bezpiecznego połączenia', 17 | 'Are you sure you want to delete this object?': 'Are you sure you want to delete this object?', 18 | 'Authentication': 'Uwierzytelnienie', 19 | 'Available Databases and Tables': 'Dostępne bazy danych i tabele', 20 | 'Buy this book': 'Buy this book', 21 | 'cache': 'cache', 22 | 'Cache': 'Cache', 23 | 'Cache Keys': 'Cache Keys', 24 | 'Cannot be empty': 'Nie może być puste', 25 | 'Change Password': 'Zmień hasło', 26 | 'change password': 'change password', 27 | 'Check to delete': 'Zaznacz aby usunąć', 28 | 'Check to delete:': 'Zaznacz aby usunąć:', 29 | 'Clear CACHE?': 'Clear CACHE?', 30 | 'Clear DISK': 'Clear DISK', 31 | 'Clear RAM': 'Clear RAM', 32 | 'Client IP': 'IP klienta', 33 | 'Community': 'Community', 34 | 'Components and Plugins': 'Components and Plugins', 35 | 'Controller': 'Kontroler', 36 | 'Copyright': 'Copyright', 37 | 'Current request': 'Aktualne żądanie', 38 | 'Current response': 'Aktualna odpowiedź', 39 | 'Current session': 'Aktualna sesja', 40 | 'customize me!': 'dostosuj mnie!', 41 | 'data uploaded': 'dane wysłane', 42 | 'Database': 'baza danych', 43 | 'Database %s select': 'wybór z bazy danych %s', 44 | 'db': 'baza danych', 45 | 'DB Model': 'Model bazy danych', 46 | 'Delete:': 'Usuń:', 47 | 'Demo': 'Demo', 48 | 'Deployment Recipes': 'Deployment Recipes', 49 | 'Description': 'Opis', 50 | 'design': 'projektuj', 51 | 'DISK': 'DISK', 52 | 'Disk Cache Keys': 'Disk Cache Keys', 53 | 'Disk Cleared': 'Disk Cleared', 54 | 'Documentation': 'Documentation', 55 | "Don't know what to do?": "Don't know what to do?", 56 | 'done!': 'zrobione!', 57 | 'Download': 'Download', 58 | 'E-mail': 'Adres e-mail', 59 | 'Edit': 'Edycja', 60 | 'Edit current record': 'Edytuj obecny rekord', 61 | 'edit profile': 'edit profile', 62 | 'Edit Profile': 'Edytuj profil', 63 | 'Edit This App': 'Edytuj tę aplikację', 64 | 'Email and SMS': 'Email and SMS', 65 | 'Errors': 'Errors', 66 | 'export as csv file': 'eksportuj jako plik csv', 67 | 'FAQ': 'FAQ', 68 | 'First name': 'Imię', 69 | 'Forms and Validators': 'Forms and Validators', 70 | 'Free Applications': 'Free Applications', 71 | 'Function disabled': 'Funkcja wyłączona', 72 | 'Group ID': 'ID grupy', 73 | 'Groups': 'Groups', 74 | 'Hello World': 'Witaj Świecie', 75 | 'Home': 'Home', 76 | 'How did you get here?': 'How did you get here?', 77 | 'import': 'import', 78 | 'Import/Export': 'Importuj/eksportuj', 79 | 'Index': 'Indeks', 80 | 'insert new': 'wstaw nowy rekord tabeli', 81 | 'insert new %s': 'wstaw nowy rekord do tabeli %s', 82 | 'Internal State': 'Stan wewnętrzny', 83 | 'Introduction': 'Introduction', 84 | 'Invalid email': 'Błędny adres email', 85 | 'Invalid Query': 'Błędne zapytanie', 86 | 'invalid request': 'Błędne żądanie', 87 | 'Key': 'Key', 88 | 'Last name': 'Nazwisko', 89 | 'Layout': 'Układ', 90 | 'Layout Plugins': 'Layout Plugins', 91 | 'Layouts': 'Layouts', 92 | 'Live Chat': 'Live Chat', 93 | 'login': 'login', 94 | 'Login': 'Zaloguj', 95 | 'logout': 'logout', 96 | 'Logout': 'Wyloguj', 97 | 'Lost Password': 'Przypomnij hasło', 98 | 'Main Menu': 'Menu główne', 99 | 'Manage Cache': 'Manage Cache', 100 | 'Menu Model': 'Model menu', 101 | 'My Sites': 'My Sites', 102 | 'Name': 'Nazwa', 103 | 'New Record': 'Nowy rekord', 104 | 'new record inserted': 'nowy rekord został wstawiony', 105 | 'next 100 rows': 'następne 100 wierszy', 106 | 'No databases in this application': 'Brak baz danych w tej aplikacji', 107 | 'Online examples': 'Kliknij aby przejść do interaktywnych przykładów', 108 | 'or import from csv file': 'lub zaimportuj z pliku csv', 109 | 'Origin': 'Źródło', 110 | 'Other Plugins': 'Other Plugins', 111 | 'Other Recipes': 'Other Recipes', 112 | 'Overview': 'Overview', 113 | 'Password': 'Hasło', 114 | "Password fields don't match": 'Pola hasła nie są zgodne ze sobą', 115 | 'Plugins': 'Plugins', 116 | 'Powered by': 'Zasilane przez', 117 | 'Preface': 'Preface', 118 | 'previous 100 rows': 'poprzednie 100 wierszy', 119 | 'Python': 'Python', 120 | 'Query:': 'Zapytanie:', 121 | 'Quick Examples': 'Quick Examples', 122 | 'RAM': 'RAM', 123 | 'RAM Cache Keys': 'RAM Cache Keys', 124 | 'Ram Cleared': 'Ram Cleared', 125 | 'Recipes': 'Recipes', 126 | 'Record': 'rekord', 127 | 'record does not exist': 'rekord nie istnieje', 128 | 'Record ID': 'ID rekordu', 129 | 'Record id': 'id rekordu', 130 | 'Register': 'Zarejestruj', 131 | 'register': 'register', 132 | 'Registration key': 'Klucz rejestracji', 133 | 'Role': 'Rola', 134 | 'Rows in Table': 'Wiersze w tabeli', 135 | 'Rows selected': 'Wybrane wiersze', 136 | 'Semantic': 'Semantic', 137 | 'Services': 'Services', 138 | 'Size of cache:': 'Size of cache:', 139 | 'state': 'stan', 140 | 'Statistics': 'Statistics', 141 | 'Stylesheet': 'Arkusz stylów', 142 | 'submit': 'submit', 143 | 'Submit': 'Wyślij', 144 | 'Support': 'Support', 145 | 'Sure you want to delete this object?': 'Czy na pewno chcesz usunąć ten obiekt?', 146 | 'Table': 'tabela', 147 | 'Table name': 'Nazwa tabeli', 148 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"Zapytanie" jest warunkiem postaci "db.tabela1.pole1==\'wartość\'". Takie coś jak "db.tabela1.pole1==db.tabela2.pole2" oznacza SQL JOIN.', 149 | 'The Core': 'The Core', 150 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 151 | 'The Views': 'The Views', 152 | 'This App': 'This App', 153 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 154 | 'Timestamp': 'Znacznik czasu', 155 | 'Twitter': 'Twitter', 156 | 'unable to parse csv file': 'nie można sparsować pliku csv', 157 | 'Update:': 'Uaktualnij:', 158 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Użyj (...)&(...) jako AND, (...)|(...) jako OR oraz ~(...) jako NOT do tworzenia bardziej skomplikowanych zapytań.', 159 | 'User %(id)s Registered': 'Użytkownik %(id)s został zarejestrowany', 160 | 'User ID': 'ID użytkownika', 161 | 'Verify Password': 'Potwierdź hasło', 162 | 'Videos': 'Videos', 163 | 'View': 'Widok', 164 | 'Welcome %s': 'Welcome %s', 165 | 'Welcome to web2py': 'Witaj w web2py', 166 | 'Welcome to web2py!': 'Welcome to web2py!', 167 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 168 | 'You are successfully running web2py': 'You are successfully running web2py', 169 | 'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs', 170 | 'You visited the url %s': 'You visited the url %s', 171 | } 172 | -------------------------------------------------------------------------------- /languages/plural-cs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | { 3 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 4 | 'vteřina': ['vteřiny', 'vteřin'], 5 | 'vteřinou': ['vteřinami', 'vteřinami'], 6 | 'minuta': ['minuty', 'minut'], 7 | 'minutou': ['minutami', 'minutami'], 8 | 'hodina': ['hodiny','hodin'], 9 | 'hodinou': ['hodinami','hodinami'], 10 | 'den': ['dny','dnů'], 11 | 'dnem': ['dny','dny'], 12 | 'týden': ['týdny','týdnů'], 13 | 'týdnem': ['týdny','týdny'], 14 | 'měsíc': ['měsíce','měsíců'], 15 | 'měsícem': ['měsíci','měsíci'], 16 | 'rok': ['roky','let'], 17 | 'rokem': ['roky','lety'], 18 | 'záznam': ['záznamy', 'záznamů'], 19 | 'soubor': ['soubory', 'souborů'] 20 | } 21 | -------------------------------------------------------------------------------- /languages/plural-en.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | { 3 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 4 | 'account': ['accounts'], 5 | 'book': ['books'], 6 | 'is': ['are'], 7 | 'man': ['men'], 8 | 'miss': ['misses'], 9 | 'person': ['people'], 10 | 'quark': ['quarks'], 11 | 'shop': ['shops'], 12 | 'this': ['these'], 13 | 'was': ['were'], 14 | 'woman': ['women'], 15 | } 16 | -------------------------------------------------------------------------------- /languages/plural-es.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | { 3 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 4 | 'fila': ['filas'], 5 | 'eliminada': ['eliminadas'], 6 | 'actualizada': ['actualizadas'], 7 | 'seleccionado': ['seleccionados'], 8 | } 9 | -------------------------------------------------------------------------------- /languages/plural-ru.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | { 3 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 4 | 'выбрана': ['выбраны','выбрано'], 5 | 'запись': ['записи','записей'], 6 | 'изменена': ['изменены','изменено'], 7 | 'строка': ['строки','строк'], 8 | 'удалена': ['удалены','удалено'], 9 | 'день': ['дня', 'дней'], 10 | 'месяц': ['месяца','месяцев'], 11 | 'неделю': ['недели','недель'], 12 | 'год': ['года','лет'], 13 | 'час': ['часа','часов'], 14 | 'минуту': ['минуты','минут'], 15 | 'секунду': ['секунды','секунд'], 16 | } 17 | -------------------------------------------------------------------------------- /languages/plural-uk.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | { 3 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 4 | 'байт': ['байти','байтів'], 5 | 'годину': ['години','годин'], 6 | 'день': ['дні','днів'], 7 | 'елемент': ['елементи','елементів'], 8 | 'запис': ['записи','записів'], 9 | 'місяць': ['місяці','місяців'], 10 | 'поцілювання': ['поцілювання','поцілювань'], 11 | 'рядок': ['рядки','рядків'], 12 | 'рік': ['роки','років'], 13 | 'секунду': ['секунди','секунд'], 14 | 'схибнення': ['схибнення','схибнень'], 15 | 'тиждень': ['тижні','тижнів'], 16 | 'хвилину': ['хвилини','хвилин'], 17 | } 18 | -------------------------------------------------------------------------------- /languages/pt-br.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | '!langcode!': 'pt-br', 4 | '!langname!': 'Português (do Brasil)', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" é uma expressão opcional como "campo1=\'novovalor\'". Você não pode atualizar ou apagar os resultados de um JOIN', 6 | '%s %%{row} deleted': '%s linhas apagadas', 7 | '%s %%{row} updated': '%s linhas atualizadas', 8 | '%s selected': '%s selecionado', 9 | '%Y-%m-%d': '%d-%m-%Y', 10 | '%Y-%m-%d %H:%M:%S': '%d-%m-%Y %H:%M:%S', 11 | 'About': 'Sobre', 12 | 'Access Control': 'Controle de Acesso', 13 | 'Administrative Interface': 'Interface Administrativa', 14 | '@markmin\x01An error occured, please [[reload %s]] the page': 'Ocorreu um erro, por favor [[reload %s]] a página', 15 | 'Administrative interface': 'Interface administrativa', 16 | 'Ajax Recipes': 'Receitas de Ajax', 17 | 'appadmin is disabled because insecure channel': 'Administração desativada porque o canal não é seguro', 18 | 'Are you sure you want to delete this object?': 'Você está certo que deseja apagar este objeto?', 19 | 'Available Databases and Tables': 'Bancos de dados e tabelas disponíveis', 20 | 'Buy this book': 'Compre o livro', 21 | 'cache': 'cache', 22 | 'Cache': 'Cache', 23 | 'Cache Keys': 'Chaves de cache', 24 | 'Cannot be empty': 'Não pode ser vazio', 25 | 'change password': 'modificar senha', 26 | 'Check to delete': 'Marque para apagar', 27 | 'Clear CACHE?': 'Limpar CACHE?', 28 | 'Clear DISK': 'Limpar DISCO', 29 | 'Clear RAM': 'Limpar memória RAM', 30 | 'Client IP': 'IP do cliente', 31 | 'Community': 'Comunidade', 32 | 'Components and Plugins': 'Componentes e Plugins', 33 | 'Controller': 'Controlador', 34 | 'Copyright': 'Copyright', 35 | 'Current request': 'Requisição atual', 36 | 'Current response': 'Resposta atual', 37 | 'Current session': 'Sessão atual', 38 | 'customize me!': 'Personalize-me!', 39 | 'data uploaded': 'dados enviados', 40 | 'Database': 'banco de dados', 41 | 'Database %s select': 'Selecionar banco de dados %s', 42 | 'db': 'bd', 43 | 'DB Model': 'Modelo BD', 44 | 'Delete:': 'Apagar:', 45 | 'Demo': 'Demo', 46 | 'Deployment Recipes': 'Receitas de deploy', 47 | 'Description': 'Descrição', 48 | 'design': 'projeto', 49 | 'DISK': 'DISK', 50 | 'Disk Cache Keys': 'Chaves do Cache de Disco', 51 | 'Disk Cleared': 'Disco Limpo', 52 | 'Documentation': 'Documentação', 53 | "Don't know what to do?": "Não sabe o que fazer?", 54 | 'done!': 'concluído!', 55 | 'Download': 'Download', 56 | 'E-mail': 'E-mail', 57 | 'Edit': 'Editar', 58 | 'Edit current record': 'Editar o registro atual', 59 | 'edit profile': 'editar perfil', 60 | 'Edit This App': 'Editar esta aplicação', 61 | 'Email and SMS': 'Email e SMS', 62 | 'Errors': 'Erros', 63 | 'Enter an integer between %(min)g and %(max)g': 'Informe um valor inteiro entre %(min)g e %(max)g', 64 | 'export as csv file': 'exportar como um arquivo csv', 65 | 'FAQ': 'Perguntas frequentes', 66 | 'First name': 'Nome', 67 | 'Forms and Validators': 'Formulários e Validadores', 68 | 'Free Applications': 'Aplicações gratuitas', 69 | 'Group ID': 'ID do Grupo', 70 | 'Groups': 'Grupos', 71 | 'Hello World': 'Olá Mundo', 72 | 'Home': 'Principal', 73 | 'How did you get here?': 'Como você chegou aqui?', 74 | 'import': 'importar', 75 | 'Import/Export': 'Importar/Exportar', 76 | 'Index': 'Início', 77 | 'insert new': 'inserir novo', 78 | 'insert new %s': 'inserir novo %s', 79 | 'Internal State': 'Estado Interno', 80 | 'Introduction': 'Introdução', 81 | 'Invalid email': 'Email inválido', 82 | 'Invalid Query': 'Consulta Inválida', 83 | 'invalid request': 'requisição inválida', 84 | 'Key': 'Chave', 85 | 'Last name': 'Sobrenome', 86 | 'Layout': 'Layout', 87 | 'Layout Plugins': 'Plugins de Layout', 88 | 'Layouts': 'Layouts', 89 | 'Live chat': 'Chat ao vivo', 90 | 'Live Chat': 'Chat ao vivo', 91 | 'login': 'Entrar', 92 | 'Login': 'Autentique-se', 93 | 'logout': 'Sair', 94 | 'Lost Password': 'Esqueceu sua senha?', 95 | 'lost password?': 'esqueceu sua senha?', 96 | 'Main Menu': 'Menu Principal', 97 | 'Manage Cache': 'Gerenciar Cache', 98 | 'Menu Model': 'Modelo de Menu', 99 | 'My Sites': 'Meus sites', 100 | 'Name': 'Nome', 101 | 'New Record': 'Novo Registro', 102 | 'new record inserted': 'novo registro inserido', 103 | 'next 100 rows': 'próximas 100 linhas', 104 | 'No databases in this application': 'Não há bancos de dados nesta aplicação', 105 | 'Object or table name': 'Nome do objeto do da tabela', 106 | 'Online examples': 'Exemplos online', 107 | 'or import from csv file': 'ou importar de um arquivo csv', 108 | 'Origin': 'Origem', 109 | 'Other Plugins': 'Outros Plugins', 110 | 'Other Recipes': 'Outras Receitas', 111 | 'Overview': 'Visão Geral', 112 | 'Password': 'Senha', 113 | 'Plugins': 'Plugins', 114 | 'Powered by': 'Desenvolvido com', 115 | 'Preface': 'Prefácio', 116 | 'previous 100 rows': '100 linhas anteriores', 117 | 'Python': 'Python', 118 | 'Query:': 'Consulta:', 119 | 'Quick Examples': 'Exemplos rápidos', 120 | 'RAM': 'RAM', 121 | 'RAM Cache Keys': 'RAM Cache Keys', 122 | 'Ram Cleared': 'Ram Cleared', 123 | 'Recipes': 'Receitas', 124 | 'Record': 'Registro', 125 | 'record does not exist': 'registro não existe', 126 | 'Record ID': 'ID do Registro', 127 | 'Record id': 'id do registro', 128 | 'Register': 'Registre-se', 129 | 'register': 'Registre-se', 130 | 'Registration key': 'Chave de registro', 131 | 'Reset Password key': 'Resetar chave de senha', 132 | 'Resources': 'Recursos', 133 | 'Role': 'Papel', 134 | 'Registration identifier': 'Idenficador de registro', 135 | 'Rows in Table': 'Linhas na tabela', 136 | 'Rows selected': 'Linhas selecionadas', 137 | 'Semantic': 'Semântico', 138 | 'Services': 'Serviço', 139 | 'Size of cache:': 'Tamanho do cache:', 140 | 'state': 'estado', 141 | 'Statistics': 'Estatísticas', 142 | 'Stylesheet': 'Folha de estilo', 143 | 'submit': 'enviar', 144 | 'Support': 'Suporte', 145 | 'Sure you want to delete this object?': 'Está certo(a) que deseja apagar este objeto?', 146 | 'Table': 'Tabela', 147 | 'Table name': 'Nome da tabela', 148 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'Uma "consulta" é uma condição como "db.tabela1.campo1==\'valor\'". Expressões como "db.tabela1.campo1==db.tabela2.campo2" resultam em um JOIN SQL.', 149 | 'The Core': 'The Core', 150 | 'The output of the file is a dictionary that was rendered by the view %s': 'A saída do arquivo é um dicionário que foi apresentado pela visão %s', 151 | 'The Views': 'As views', 152 | 'This App': 'Esta aplicação', 153 | 'This email already has an account': 'Este email já tem uma conta', 154 | 'This is a copy of the scaffolding application': 'Isto é uma cópia da aplicação modelo', 155 | 'Time in Cache (h:m:s)': 'Tempo em Cache (h:m:s)', 156 | 'Timestamp': 'Timestamp', 157 | 'Twitter': 'Twitter', 158 | 'unable to parse csv file': 'não foi possível analisar arquivo csv', 159 | 'Update:': 'Atualizar:', 160 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Use (...)&(...) para AND, (...)|(...) para OR, e ~(...) para NOT para construir consultas mais complexas.', 161 | 'User ID': 'ID do Usuário', 162 | 'User Voice': 'Opinião dos usuários', 163 | 'Videos': 'Vídeos', 164 | 'View': 'Visualização', 165 | 'Web2py': 'Web2py', 166 | 'Welcome': 'Bem-vindo', 167 | 'Welcome %s': 'Bem-vindo %s', 168 | 'Welcome to web2py': 'Bem-vindo ao web2py', 169 | 'Welcome to web2py!': 'Bem-vindo ao web2py!', 170 | 'Which called the function %s located in the file %s': 'Que chamou a função %s localizada no arquivo %s', 171 | 'You are successfully running web2py': 'Você está executando o web2py com sucesso', 172 | 'You are successfully running web2py.': 'Você está executando o web2py com sucesso.', 173 | 'You can modify this application and adapt it to your needs': 'Você pode modificar esta aplicação e adaptá-la às suas necessidades', 174 | 'You visited the url %s': 'Você acessou a url %s', 175 | 'Working...': 'Trabalhando...', 176 | } 177 | -------------------------------------------------------------------------------- /languages/pt.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'pt', 4 | '!langname!': 'Português', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" é uma expressão opcional como "field1=\'newvalue\'". Não pode actualizar ou eliminar os resultados de um JOIN', 6 | '%s %%{row} deleted': '%s linhas eliminadas', 7 | '%s %%{row} updated': '%s linhas actualizadas', 8 | '%s selected': '%s seleccionado(s)', 9 | '%Y-%m-%d': '%Y-%m-%d', 10 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 11 | 'About': 'About', 12 | 'Access Control': 'Access Control', 13 | 'Administrative Interface': 'Administrative Interface', 14 | 'Administrative interface': 'Painel administrativo', 15 | 'Ajax Recipes': 'Ajax Recipes', 16 | 'appadmin is disabled because insecure channel': 'appadmin está desactivada pois o canal é inseguro', 17 | 'Are you sure you want to delete this object?': 'Are you sure you want to delete this object?', 18 | 'Author Reference Auth User': 'Author Reference Auth User', 19 | 'Author Reference Auth User.username': 'Author Reference Auth User.username', 20 | 'Available Databases and Tables': 'bases de dados e tabelas disponíveis', 21 | 'Buy this book': 'Buy this book', 22 | 'cache': 'cache', 23 | 'Cache': 'Cache', 24 | 'Cache Keys': 'Cache Keys', 25 | 'Cannot be empty': 'não pode ser vazio', 26 | 'Category Create': 'Category Create', 27 | 'Category Select': 'Category Select', 28 | 'change password': 'alterar palavra-chave', 29 | 'Check to delete': 'seleccione para eliminar', 30 | 'Clear CACHE?': 'Clear CACHE?', 31 | 'Clear DISK': 'Clear DISK', 32 | 'Clear RAM': 'Clear RAM', 33 | 'Comment Create': 'Comment Create', 34 | 'Comment Select': 'Comment Select', 35 | 'Community': 'Community', 36 | 'Components and Plugins': 'Components and Plugins', 37 | 'Content': 'Content', 38 | 'Controller': 'Controlador', 39 | 'Copyright': 'Direitos de cópia', 40 | 'create new category': 'create new category', 41 | 'create new comment': 'create new comment', 42 | 'create new post': 'create new post', 43 | 'Created By': 'Created By', 44 | 'Created On': 'Created On', 45 | 'Current request': 'pedido currente', 46 | 'Current response': 'resposta currente', 47 | 'Current session': 'sessão currente', 48 | 'customize me!': 'Personaliza-me!', 49 | 'data uploaded': 'informação enviada', 50 | 'Database': 'base de dados', 51 | 'Database %s select': 'selecção de base de dados %s', 52 | 'db': 'bd', 53 | 'DB Model': 'Modelo de BD', 54 | 'Delete:': 'Eliminar:', 55 | 'Demo': 'Demo', 56 | 'Deployment Recipes': 'Deployment Recipes', 57 | 'design': 'design', 58 | 'DISK': 'DISK', 59 | 'Disk Cache Keys': 'Disk Cache Keys', 60 | 'Disk Cleared': 'Disk Cleared', 61 | 'Documentation': 'Documentation', 62 | "Don't know what to do?": "Don't know what to do?", 63 | 'done!': 'concluído!', 64 | 'Download': 'Download', 65 | 'Edit': 'Editar', 66 | 'edit category': 'edit category', 67 | 'edit comment': 'edit comment', 68 | 'Edit current record': 'Edição de registo currente', 69 | 'edit post': 'edit post', 70 | 'edit profile': 'Editar perfil', 71 | 'Edit This App': 'Edite esta aplicação', 72 | 'Email': 'Email', 73 | 'Email and SMS': 'Email and SMS', 74 | 'Errors': 'Errors', 75 | 'export as csv file': 'exportar como ficheiro csv', 76 | 'FAQ': 'FAQ', 77 | 'First Name': 'First Name', 78 | 'For %s #%s': 'For %s #%s', 79 | 'Forms and Validators': 'Forms and Validators', 80 | 'Free Applications': 'Free Applications', 81 | 'Groups': 'Groups', 82 | 'Hello World': 'Olá Mundo', 83 | 'Home': 'Home', 84 | 'How did you get here?': 'How did you get here?', 85 | 'import': 'import', 86 | 'Import/Export': 'Importar/Exportar', 87 | 'Index': 'Índice', 88 | 'insert new': 'inserir novo', 89 | 'insert new %s': 'inserir novo %s', 90 | 'Internal State': 'Estado interno', 91 | 'Introduction': 'Introduction', 92 | 'Invalid Query': 'Consulta Inválida', 93 | 'invalid request': 'Pedido Inválido', 94 | 'Key': 'Key', 95 | 'Last Name': 'Last Name', 96 | 'Layout': 'Esboço', 97 | 'Layout Plugins': 'Layout Plugins', 98 | 'Layouts': 'Layouts', 99 | 'Live Chat': 'Live Chat', 100 | 'login': 'login', 101 | 'logout': 'logout', 102 | 'Lost Password': 'Lost Password', 103 | 'Main Menu': 'Menu Principal', 104 | 'Manage Cache': 'Manage Cache', 105 | 'Menu Model': 'Menu do Modelo', 106 | 'Modified By': 'Modified By', 107 | 'Modified On': 'Modified On', 108 | 'My Sites': 'My Sites', 109 | 'Name': 'Name', 110 | 'New Record': 'Novo Registo', 111 | 'new record inserted': 'novo registo inserido', 112 | 'next 100 rows': 'próximas 100 linhas', 113 | 'No Data': 'No Data', 114 | 'No databases in this application': 'Não há bases de dados nesta aplicação', 115 | 'Online examples': 'Exemplos online', 116 | 'or import from csv file': 'ou importe a partir de ficheiro csv', 117 | 'Other Plugins': 'Other Plugins', 118 | 'Other Recipes': 'Other Recipes', 119 | 'Overview': 'Overview', 120 | 'Password': 'Password', 121 | 'Plugins': 'Plugins', 122 | 'Post Create': 'Post Create', 123 | 'Post Select': 'Post Select', 124 | 'Powered by': 'Suportado por', 125 | 'Preface': 'Preface', 126 | 'previous 100 rows': '100 linhas anteriores', 127 | 'Python': 'Python', 128 | 'Query:': 'Interrogação:', 129 | 'Quick Examples': 'Quick Examples', 130 | 'RAM': 'RAM', 131 | 'RAM Cache Keys': 'RAM Cache Keys', 132 | 'Ram Cleared': 'Ram Cleared', 133 | 'Recipes': 'Recipes', 134 | 'Record': 'registo', 135 | 'record does not exist': 'registo inexistente', 136 | 'Record id': 'id de registo', 137 | 'Register': 'Register', 138 | 'register': 'register', 139 | 'Replyto Reference Post': 'Replyto Reference Post', 140 | 'Rows in Table': 'Linhas numa tabela', 141 | 'Rows selected': 'Linhas seleccionadas', 142 | 'search category': 'search category', 143 | 'search comment': 'search comment', 144 | 'search post': 'search post', 145 | 'select category': 'select category', 146 | 'select comment': 'select comment', 147 | 'select post': 'select post', 148 | 'Semantic': 'Semantic', 149 | 'Services': 'Services', 150 | 'show category': 'show category', 151 | 'show comment': 'show comment', 152 | 'show post': 'show post', 153 | 'Size of cache:': 'Size of cache:', 154 | 'state': 'estado', 155 | 'Statistics': 'Statistics', 156 | 'Stylesheet': 'Folha de estilo', 157 | 'submit': 'submit', 158 | 'Support': 'Support', 159 | 'Sure you want to delete this object?': 'Tem a certeza que deseja eliminar este objecto?', 160 | 'Table': 'tabela', 161 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'A "query" é uma condição do tipo "db.table1.field1==\'value\'". Algo como "db.table1.field1==db.table2.field2" resultaria num SQL JOIN.', 162 | 'The Core': 'The Core', 163 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 164 | 'The Views': 'The Views', 165 | 'This App': 'This App', 166 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 167 | 'Title': 'Title', 168 | 'Twitter': 'Twitter', 169 | 'unable to parse csv file': 'não foi possível carregar ficheiro csv', 170 | 'Update:': 'Actualização:', 171 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Utilize (...)&(...) para AND, (...)|(...) para OR, e ~(...) para NOT para construir interrogações mais complexas.', 172 | 'Username': 'Username', 173 | 'Videos': 'Videos', 174 | 'View': 'Vista', 175 | 'Welcome %s': 'Bem-vindo(a) %s', 176 | 'Welcome to Gluonization': 'Bem vindo ao Web2py', 177 | 'Welcome to web2py': 'Bem-vindo(a) ao web2py', 178 | 'Welcome to web2py!': 'Welcome to web2py!', 179 | 'When': 'When', 180 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 181 | 'You are successfully running web2py': 'You are successfully running web2py', 182 | 'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs', 183 | 'You visited the url %s': 'You visited the url %s', 184 | } 185 | -------------------------------------------------------------------------------- /languages/ru.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'ru', 4 | '!langname!': 'Русский', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"Изменить" - необязательное выражение вида "field1=\'новое значение\'". Результаты операции JOIN нельзя изменить или удалить.', 6 | '%d days ago': '%d %%{день} тому', 7 | '%d hours ago': '%d %%{час} тому', 8 | '%d minutes ago': '%d %%{минуту} тому', 9 | '%d months ago': '%d %%{месяц} тому', 10 | '%d seconds ago': '%d %%{секунду} тому', 11 | '%d weeks ago': '%d %%{неделю} тому', 12 | '%d years ago': '%d %%{год} тому', 13 | '%s %%{row} deleted': '%%{!удалена[0]} %s %%{строка[0]}', 14 | '%s %%{row} updated': '%%{!изменена[0]} %s %%{строка[0]}', 15 | '%s selected': '%%{!выбрана[0]} %s %%{запись[0]}', 16 | '%Y-%m-%d': '%Y-%m-%d', 17 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 18 | '1 day ago': '1 день тому', 19 | '1 hour ago': '1 час тому', 20 | '1 minute ago': '1 минуту тому', 21 | '1 month ago': '1 месяц тому', 22 | '1 second ago': '1 секунду тому', 23 | '1 week ago': '1 неделю тому', 24 | '1 year ago': '1 год тому', 25 | 'About': 'About', 26 | 'Access Control': 'Access Control', 27 | 'Administrative Interface': 'Administrative Interface', 28 | 'Administrative interface': 'административный интерфейс', 29 | 'Ajax Recipes': 'Ajax Recipes', 30 | 'appadmin is disabled because insecure channel': 'appadmin is disabled because insecure channel', 31 | 'Are you sure you want to delete this object?': 'Вы уверены, что хотите удалить этот объект?', 32 | 'Available Databases and Tables': 'Базы данных и таблицы', 33 | 'Buy this book': 'Buy this book', 34 | 'cache': 'cache', 35 | 'Cache': 'Cache', 36 | 'Cache Keys': 'Cache Keys', 37 | 'Cannot be empty': 'Пустое значение недопустимо', 38 | 'Change Password': 'Смените пароль', 39 | 'Check to delete': 'Удалить', 40 | 'Check to delete:': 'Удалить:', 41 | 'Clear CACHE?': 'Clear CACHE?', 42 | 'Clear DISK': 'Clear DISK', 43 | 'Clear RAM': 'Clear RAM', 44 | 'Client IP': 'Client IP', 45 | 'Community': 'Community', 46 | 'Components and Plugins': 'Components and Plugins', 47 | 'Controller': 'Controller', 48 | 'Copyright': 'Copyright', 49 | 'Current request': 'Текущий запрос', 50 | 'Current response': 'Текущий ответ', 51 | 'Current session': 'Текущая сессия', 52 | 'customize me!': 'настройте внешний вид!', 53 | 'data uploaded': 'данные загружены', 54 | 'Database': 'Database', 55 | 'Database %s select': 'выбор базы данных %s', 56 | 'db': 'БД', 57 | 'DB Model': 'DB Model', 58 | 'Delete:': 'Удалить:', 59 | 'Demo': 'Demo', 60 | 'Deployment Recipes': 'Deployment Recipes', 61 | 'Description': 'Описание', 62 | 'design': 'дизайн', 63 | 'DISK': 'DISK', 64 | 'Disk Cache Keys': 'Disk Cache Keys', 65 | 'Disk Cleared': 'Disk Cleared', 66 | 'Documentation': 'Documentation', 67 | "Don't know what to do?": "Don't know what to do?", 68 | 'done!': 'готово!', 69 | 'Download': 'Download', 70 | 'E-mail': 'E-mail', 71 | 'Edit current record': 'Редактировать текущую запись', 72 | 'Edit Profile': 'Редактировать профиль', 73 | 'Email and SMS': 'Email and SMS', 74 | 'enter an integer between %(min)g and %(max)g': 'enter an integer between %(min)g and %(max)g', 75 | 'Errors': 'Errors', 76 | 'export as csv file': 'экспорт в csv-файл', 77 | 'FAQ': 'FAQ', 78 | 'First name': 'Имя', 79 | 'Forms and Validators': 'Forms and Validators', 80 | 'Free Applications': 'Free Applications', 81 | 'Group ID': 'Group ID', 82 | 'Groups': 'Groups', 83 | 'Hello World': 'Заработало!', 84 | 'Home': 'Home', 85 | 'How did you get here?': 'How did you get here?', 86 | 'import': 'import', 87 | 'Import/Export': 'Импорт/экспорт', 88 | 'insert new': 'добавить', 89 | 'insert new %s': 'добавить %s', 90 | 'Internal State': 'Внутренне состояние', 91 | 'Introduction': 'Introduction', 92 | 'Invalid email': 'Неверный email', 93 | 'Invalid login': 'Неверный логин', 94 | 'Invalid password': 'Неверный пароль', 95 | 'Invalid Query': 'Неверный запрос', 96 | 'invalid request': 'неверный запрос', 97 | 'Key': 'Key', 98 | 'Last name': 'Фамилия', 99 | 'Layout': 'Layout', 100 | 'Layout Plugins': 'Layout Plugins', 101 | 'Layouts': 'Layouts', 102 | 'Live Chat': 'Live Chat', 103 | 'Logged in': 'Вход выполнен', 104 | 'Logged out': 'Выход выполнен', 105 | 'login': 'вход', 106 | 'Login': 'Вход', 107 | 'logout': 'выход', 108 | 'Logout': 'Выход', 109 | 'Lost Password': 'Забыли пароль?', 110 | 'Lost password?': 'Lost password?', 111 | 'Manage Cache': 'Manage Cache', 112 | 'Menu Model': 'Menu Model', 113 | 'My Sites': 'My Sites', 114 | 'Name': 'Name', 115 | 'New password': 'Новый пароль', 116 | 'New Record': 'Новая запись', 117 | 'new record inserted': 'новая запись добавлена', 118 | 'next 100 rows': 'следующие 100 строк', 119 | 'No databases in this application': 'В приложении нет баз данных', 120 | 'now': 'сейчас', 121 | 'Object or table name': 'Object or table name', 122 | 'Old password': 'Старый пароль', 123 | 'Online examples': 'примеры он-лайн', 124 | 'or import from csv file': 'или импорт из csv-файла', 125 | 'Origin': 'Происхождение', 126 | 'Other Plugins': 'Other Plugins', 127 | 'Other Recipes': 'Other Recipes', 128 | 'Overview': 'Overview', 129 | 'Password': 'Пароль', 130 | 'password': 'пароль', 131 | "Password fields don't match": 'Пароли не совпадают', 132 | 'Plugins': 'Plugins', 133 | 'Powered by': 'Powered by', 134 | 'Preface': 'Preface', 135 | 'previous 100 rows': 'предыдущие 100 строк', 136 | 'profile': 'профиль', 137 | 'Python': 'Python', 138 | 'Query:': 'Запрос:', 139 | 'Quick Examples': 'Quick Examples', 140 | 'RAM': 'RAM', 141 | 'RAM Cache Keys': 'RAM Cache Keys', 142 | 'Ram Cleared': 'Ram Cleared', 143 | 'Recipes': 'Recipes', 144 | 'Record': 'Record', 145 | 'record does not exist': 'запись не найдена', 146 | 'Record ID': 'ID записи', 147 | 'Record id': 'id записи', 148 | 'Register': 'Зарегистрироваться', 149 | 'Registration identifier': 'Registration identifier', 150 | 'Registration key': 'Ключ регистрации', 151 | 'Remember me (for 30 days)': 'Запомнить меня (на 30 дней)', 152 | 'Reset Password key': 'Сбросить ключ пароля', 153 | 'Role': 'Роль', 154 | 'Rows in Table': 'Строк в таблице', 155 | 'Rows selected': 'Выделено строк', 156 | 'Semantic': 'Semantic', 157 | 'Services': 'Services', 158 | 'Size of cache:': 'Size of cache:', 159 | 'state': 'состояние', 160 | 'Statistics': 'Statistics', 161 | 'Stylesheet': 'Stylesheet', 162 | 'submit': 'submit', 163 | 'Submit': 'Отправить', 164 | 'Support': 'Support', 165 | 'Sure you want to delete this object?': 'Подтвердите удаление объекта', 166 | 'Table': 'таблица', 167 | 'Table name': 'Имя таблицы', 168 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"Запрос" - это условие вида "db.table1.field1==\'значение\'". Выражение вида "db.table1.field1==db.table2.field2" формирует SQL JOIN.', 169 | 'The Core': 'The Core', 170 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 171 | 'The Views': 'The Views', 172 | 'This App': 'This App', 173 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 174 | 'Timestamp': 'Отметка времени', 175 | 'Twitter': 'Twitter', 176 | 'unable to parse csv file': 'нечитаемый csv-файл', 177 | 'Update:': 'Изменить:', 178 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Для построение сложных запросов используйте операторы "И": (...)&(...), "ИЛИ": (...)|(...), "НЕ": ~(...).', 179 | 'User %(id)s Logged-in': 'Пользователь %(id)s вошёл', 180 | 'User %(id)s Logged-out': 'Пользователь %(id)s вышел', 181 | 'User %(id)s Password changed': 'Пользователь %(id)s сменил пароль', 182 | 'User %(id)s Profile updated': 'Пользователь %(id)s обновил профиль', 183 | 'User %(id)s Registered': 'Пользователь %(id)s зарегистрировался', 184 | 'User ID': 'ID пользователя', 185 | 'Verify Password': 'Повторите пароль', 186 | 'Videos': 'Videos', 187 | 'View': 'View', 188 | 'Welcome': 'Welcome', 189 | 'Welcome to web2py': 'Добро пожаловать в web2py', 190 | 'Welcome to web2py!': 'Welcome to web2py!', 191 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 192 | 'You are successfully running web2py': 'You are successfully running web2py', 193 | 'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs', 194 | 'You visited the url %s': 'You visited the url %s', 195 | } 196 | -------------------------------------------------------------------------------- /languages/sk.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'sk', 4 | '!langname!': 'Slovenský', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" je voliteľný výraz ako "field1=\'newvalue\'". Nemôžete upravovať alebo zmazať výsledky JOINu', 6 | '%s %%{row} deleted': '%s zmazaných záznamov', 7 | '%s %%{row} updated': '%s upravených záznamov', 8 | '%s selected': '%s označených', 9 | '%Y-%m-%d': '%d.%m.%Y', 10 | '%Y-%m-%d %H:%M:%S': '%d.%m.%Y %H:%M:%S', 11 | 'About': 'About', 12 | 'Access Control': 'Access Control', 13 | 'Administrative Interface': 'Administrative Interface', 14 | 'Administrative interface': 'pre administrátorské rozhranie kliknite sem', 15 | 'Ajax Recipes': 'Ajax Recipes', 16 | 'appadmin is disabled because insecure channel': 'appadmin je zakázaný bez zabezpečeného spojenia', 17 | 'Are you sure you want to delete this object?': 'Are you sure you want to delete this object?', 18 | 'Available Databases and Tables': 'Dostupné databázy a tabuľky', 19 | 'Buy this book': 'Buy this book', 20 | 'cache': 'cache', 21 | 'Cache': 'Cache', 22 | 'Cache Keys': 'Cache Keys', 23 | 'Cannot be empty': 'Nemôže byť prázdne', 24 | 'Check to delete': 'Označiť na zmazanie', 25 | 'Clear CACHE?': 'Clear CACHE?', 26 | 'Clear DISK': 'Clear DISK', 27 | 'Clear RAM': 'Clear RAM', 28 | 'Community': 'Community', 29 | 'Components and Plugins': 'Components and Plugins', 30 | 'Controller': 'Controller', 31 | 'Copyright': 'Copyright', 32 | 'Current request': 'Aktuálna požiadavka', 33 | 'Current response': 'Aktuálna odpoveď', 34 | 'Current session': 'Aktuálne sedenie', 35 | 'customize me!': 'prispôsob ma!', 36 | 'data uploaded': 'údaje naplnené', 37 | 'Database': 'databáza', 38 | 'Database %s select': 'databáza %s výber', 39 | 'db': 'db', 40 | 'DB Model': 'DB Model', 41 | 'Delete:': 'Zmazať:', 42 | 'Demo': 'Demo', 43 | 'Deployment Recipes': 'Deployment Recipes', 44 | 'Description': 'Popis', 45 | 'design': 'návrh', 46 | 'DISK': 'DISK', 47 | 'Disk Cache Keys': 'Disk Cache Keys', 48 | 'Disk Cleared': 'Disk Cleared', 49 | 'Documentation': 'Dokumentácia', 50 | "Don't know what to do?": "Don't know what to do?", 51 | 'done!': 'hotovo!', 52 | 'Download': 'Download', 53 | 'Edit': 'Upraviť', 54 | 'Edit current record': 'Upraviť aktuálny záznam', 55 | 'Edit Profile': 'Upraviť profil', 56 | 'Email and SMS': 'Email and SMS', 57 | 'Errors': 'Errors', 58 | 'export as csv file': 'exportovať do csv súboru', 59 | 'FAQ': 'FAQ', 60 | 'First name': 'Krstné meno', 61 | 'Forms and Validators': 'Forms and Validators', 62 | 'Free Applications': 'Free Applications', 63 | 'Group ID': 'ID skupiny', 64 | 'Groups': 'Groups', 65 | 'Hello World': 'Ahoj svet', 66 | 'Home': 'Home', 67 | 'How did you get here?': 'How did you get here?', 68 | 'import': 'import', 69 | 'Import/Export': 'Import/Export', 70 | 'Index': 'Index', 71 | 'insert new': 'vložiť nový záznam ', 72 | 'insert new %s': 'vložiť nový záznam %s', 73 | 'Internal State': 'Vnútorný stav', 74 | 'Introduction': 'Introduction', 75 | 'Invalid email': 'Neplatný email', 76 | 'Invalid password': 'Nesprávne heslo', 77 | 'Invalid Query': 'Neplatná otázka', 78 | 'invalid request': 'Neplatná požiadavka', 79 | 'Key': 'Key', 80 | 'Last name': 'Priezvisko', 81 | 'Layout': 'Layout', 82 | 'Layout Plugins': 'Layout Plugins', 83 | 'Layouts': 'Layouts', 84 | 'Live Chat': 'Live Chat', 85 | 'Logged in': 'Prihlásený', 86 | 'Logged out': 'Odhlásený', 87 | 'login': 'prihlásiť', 88 | 'logout': 'odhlásiť', 89 | 'Lost Password': 'Stratené heslo?', 90 | 'lost password?': 'stratené heslo?', 91 | 'Manage Cache': 'Manage Cache', 92 | 'Menu Model': 'Menu Model', 93 | 'My Sites': 'My Sites', 94 | 'Name': 'Meno', 95 | 'New password': 'Nové heslo', 96 | 'New Record': 'Nový záznam', 97 | 'new record inserted': 'nový záznam bol vložený', 98 | 'next 100 rows': 'ďalších 100 riadkov', 99 | 'No databases in this application': 'V tejto aplikácii nie sú databázy', 100 | 'Old password': 'Staré heslo', 101 | 'Online examples': 'pre online príklady kliknite sem', 102 | 'or import from csv file': 'alebo naimportovať z csv súboru', 103 | 'Origin': 'Pôvod', 104 | 'Other Plugins': 'Other Plugins', 105 | 'Other Recipes': 'Other Recipes', 106 | 'Overview': 'Overview', 107 | 'password': 'heslo', 108 | 'Password': 'Heslo', 109 | 'Plugins': 'Plugins', 110 | 'Powered by': 'Powered by', 111 | 'Preface': 'Preface', 112 | 'previous 100 rows': 'predchádzajúcich 100 riadkov', 113 | 'Python': 'Python', 114 | 'Query:': 'Otázka:', 115 | 'Quick Examples': 'Quick Examples', 116 | 'RAM': 'RAM', 117 | 'RAM Cache Keys': 'RAM Cache Keys', 118 | 'Ram Cleared': 'Ram Cleared', 119 | 'Recipes': 'Recipes', 120 | 'Record': 'záznam', 121 | 'record does not exist': 'záznam neexistuje', 122 | 'Record ID': 'ID záznamu', 123 | 'Record id': 'id záznamu', 124 | 'Register': 'Zaregistrovať sa', 125 | 'register': 'registrovať', 126 | 'Registration key': 'Registračný kľúč', 127 | 'Remember me (for 30 days)': 'Zapamätaj si ma (na 30 dní)', 128 | 'Reset Password key': 'Nastaviť registračný kľúč', 129 | 'Role': 'Rola', 130 | 'Rows in Table': 'riadkov v tabuľke', 131 | 'Rows selected': 'označených riadkov', 132 | 'Semantic': 'Semantic', 133 | 'Services': 'Services', 134 | 'Size of cache:': 'Size of cache:', 135 | 'state': 'stav', 136 | 'Statistics': 'Statistics', 137 | 'Stylesheet': 'Stylesheet', 138 | 'submit': 'submit', 139 | 'Submit': 'Odoslať', 140 | 'Support': 'Support', 141 | 'Sure you want to delete this object?': 'Ste si istí, že chcete zmazať tento objekt?', 142 | 'Table': 'tabuľka', 143 | 'Table name': 'Názov tabuľky', 144 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"query" je podmienka ako "db.table1.field1==\'value\'". Niečo ako "db.table1.field1==db.table2.field2" má za výsledok SQL JOIN.', 145 | 'The Core': 'The Core', 146 | 'The output of the file is a dictionary that was rendered by the view %s': 'Výstup zo súboru je slovník, ktorý bol zobrazený vo view %s', 147 | 'The Views': 'The Views', 148 | 'This App': 'This App', 149 | 'This is a copy of the scaffolding application': 'Toto je kópia skeletu aplikácie', 150 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 151 | 'Timestamp': 'Časová pečiatka', 152 | 'Twitter': 'Twitter', 153 | 'unable to parse csv file': 'nedá sa načítať csv súbor', 154 | 'Update:': 'Upraviť:', 155 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Použite (...)&(...) pre AND, (...)|(...) pre OR a ~(...) pre NOT na poskladanie komplexnejších otázok.', 156 | 'User %(id)s Logged-in': 'Používateľ %(id)s prihlásený', 157 | 'User %(id)s Logged-out': 'Používateľ %(id)s odhlásený', 158 | 'User %(id)s Password changed': 'Používateľ %(id)s zmenil heslo', 159 | 'User %(id)s Profile updated': 'Používateľ %(id)s upravil profil', 160 | 'User %(id)s Registered': 'Používateľ %(id)s sa zaregistroval', 161 | 'User ID': 'ID používateľa', 162 | 'Verify Password': 'Zopakujte heslo', 163 | 'Videos': 'Videos', 164 | 'View': 'Zobraziť', 165 | 'Welcome to web2py': 'Vitajte vo web2py', 166 | 'Welcome to web2py!': 'Welcome to web2py!', 167 | 'Which called the function %s located in the file %s': 'Ktorý zavolal funkciu %s nachádzajúci sa v súbore %s', 168 | 'You are successfully running web2py': 'Úspešne ste spustili web2py', 169 | 'You can modify this application and adapt it to your needs': 'Môžete upraviť túto aplikáciu a prispôsobiť ju svojim potrebám', 170 | 'You visited the url %s': 'Navštívili ste URL %s', 171 | } 172 | -------------------------------------------------------------------------------- /languages/tr.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | { 3 | '!langcode!': 'tr', 4 | '!langname!': 'Türkçe', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"güncelle" ("update") "field1=\'yenideğer\'" gibi isteğe bağlı bir ifadedir. JON sonucu güncelleyemez veya silemzsiniz.', 6 | '%s %%(shop)': '%s %%(shop)', 7 | '%s %%(shop[0])': '%s %%(shop[0])', 8 | '%s %%{quark[0]}': '%s %%{quark[0]}', 9 | '%s %%{shop[0]}': '%s %%{shop[0]}', 10 | '%s %%{shop}': '%s %%{shop}', 11 | '%s selected': '%s selected', 12 | '%Y-%m-%d': '%d-%m-%Y', 13 | '%Y-%m-%d %H:%M:%S': '%d-%m-%Y %H:%M:%S', 14 | '@markmin\x01**Hello World**': '**Merhaba Dünya**', 15 | '@markmin\x01An error occured, please [[reload %s]] the page': 'Bir hata oluştu, lütfen sayfayı [[yenileyin yükleyin %s]] ', 16 | 'About': 'Hakkında', 17 | 'Access Control': 'Erişim Denetimi', 18 | 'Administrative Interface': 'Yönetim Arayüzü', 19 | 'Ajax Recipes': 'Ajax Tarifleri', 20 | 'An error occured, please %s the page': 'Bir hata meydana geldi, lütfen sayfayı %s', 21 | 'Apply changes': 'Değişiklikleri uygula', 22 | 'Are you sure you want to delete this object?': 'Bu nesneyi silmek istediğinden emin misin?', 23 | 'Available Databases and Tables': 'Kullanılabilir Varitabanları ve Tablolar', 24 | 'Buy this book': 'Bu kitabı satın alın', 25 | 'cache': 'zula', 26 | 'Cannot be empty': 'Boş bırakılamaz', 27 | 'Change password': 'Parolayı değiştir', 28 | 'Check to delete': 'Silmek için denetle', 29 | 'Client IP': 'İstemci IP', 30 | 'Community': 'Topluluk', 31 | 'Components and Plugins': 'Bileşenler ve Eklentiler', 32 | 'Controller': 'Denetçi', 33 | 'Copyright': 'Telif', 34 | 'Created By': 'Tasarlayan', 35 | 'Created On': 'Oluşturma tarihi', 36 | 'customize me!': 'burayı değiştir!', 37 | 'Database': 'Veritabanı', 38 | 'Database %s select': '%s veritabanı seç', 39 | 'Database Administration (appadmin)': 'Veritabanı Yönetimi (appadmin)', 40 | 'db': 'db', 41 | 'DB Model': 'DB Modeli', 42 | 'Delete:': 'Sil:', 43 | 'Demo': 'Tanıtım', 44 | 'Deployment Recipes': 'Yayınlama tarifleri', 45 | 'Description': 'Açıklama', 46 | 'design': 'tasarım', 47 | 'Documentation': 'Kitap', 48 | "Don't know what to do?": 'Neleri nasıl yapacağını bilmiyor musun?', 49 | 'Download': 'İndir', 50 | 'E-mail': 'E-posta', 51 | 'Email and SMS': 'E-posta ve kısa mesaj (SMS)', 52 | 'enter a value': 'bir değer giriniz', 53 | 'enter an integer between %(min)g and %(max)g': '%(min)g ve %(max)g arasında bir sayı girin', 54 | 'enter date and time as %(format)s': 'tarih ve saati %(format)s biçiminde girin', 55 | 'Errors': 'Hatalar', 56 | 'Errors in form, please check it out.': 'Formda hatalar var, lütfen kontrol edin.', 57 | 'export as csv file': 'csv dosyası olarak dışa aktar', 58 | 'FAQ': 'SSS', 59 | 'First name': 'Ad', 60 | 'Forgot username?': 'Kullanıcı adını mı unuttun?', 61 | 'Forms and Validators': 'Biçimler ve Doğrulayıcılar', 62 | 'Free Applications': 'Ücretsiz uygulamalar', 63 | 'Giriş': 'Giriş', 64 | 'Graph Model': 'Grafik Modeli', 65 | 'Group %(group_id)s created': '%(group_id)s takımı oluşturuldu', 66 | 'Group ID': 'Takım ID', 67 | 'Group uniquely assigned to user %(id)s': 'Grup özgün olarak %(id)s kullanıcılara atandı', 68 | 'Groups': 'Gruplar', 69 | 'Hello World': 'Merhaba Dünya', 70 | 'Hello World ## comment': 'Merhaba Dünya ## yorum ', 71 | 'Hello World## comment': 'Merhaba Dünya## yorum ', 72 | 'Home': 'Anasayfa', 73 | 'How did you get here?': 'Bu sayfayı görüntüleme uğruna neler mi oldu?', 74 | 'import': 'import', 75 | 'Import/Export': 'Dışa/İçe Aktar', 76 | 'Introduction': 'Giriş', 77 | 'Invalid email': 'Yanlış eposta', 78 | 'Is Active': 'Etkin', 79 | 'Kayıt ol': 'Kayıt ol', 80 | 'Last name': 'Soyad', 81 | 'Layout': 'Şablon', 82 | 'Layout Plugins': 'Şablon Eklentileri', 83 | 'Layouts': 'Şablonlar', 84 | 'Live Chat': 'Canlı Sohbet', 85 | 'Logged in': 'Giriş yapıldı', 86 | 'Logged out': 'Çıkış yapıldı', 87 | 'Login': 'Giriş', 88 | 'Logout': 'Terket', 89 | 'Lost Password': 'Şifremi unuttum', 90 | 'Lost password?': 'Şifrenizimi unuttunuz?', 91 | 'Menu Model': 'Model Menü', 92 | 'Modified By': 'Değiştiren', 93 | 'Modified On': 'Değiştirilme tarihi', 94 | 'My Sites': 'Sitelerim', 95 | 'Name': 'İsim', 96 | 'New password': 'Yeni parola', 97 | 'New Record': 'Yeni Kayıt', 98 | 'Object or table name': 'Nesne ya da tablo adı', 99 | 'Old password': 'Eski parola', 100 | 'Online examples': 'Canlı örnekler', 101 | 'or import from csv file': 'veya csv dosyasından içe aktar', 102 | 'Origin': 'Asıl', 103 | 'Other Plugins': 'Diğer eklentiler', 104 | 'Other Recipes': 'Diğer Tarifler', 105 | 'Overview': 'Göz gezdir', 106 | 'Password': 'Parola', 107 | "Password fields don't match": 'Parolalar uyuşmuyor', 108 | 'please input your password again': 'lütfen parolanızı tekrar girin', 109 | 'Plugins': 'Eklentiler', 110 | 'Powered by': 'Yazılım Temeli', 111 | 'Preface': 'Önzös', 112 | 'Profile': 'Profil', 113 | 'pygraphviz library not found': 'pygraphviz library not found', 114 | 'Python': 'Python', 115 | 'Query:': 'Sorgu:', 116 | 'Quick Examples': 'Hızlı Örnekler', 117 | 'Recipes': 'Tarifeler', 118 | 'Record ID': 'Kayıt ID', 119 | 'Register': 'Kayıt ol', 120 | 'Registration identifier': 'Kayıt belirleyicisi', 121 | 'Registration key': 'Kayıt anahtarı', 122 | 'Registration successful': 'Kayıt başarılı', 123 | 'reload': 'yeniden yükle', 124 | 'Remember me (for 30 days)': 'Beni hatırla (30 gün)', 125 | 'Request reset password': 'Parolanı sıfırla', 126 | 'Reset Password key': 'Parola anahtarını sıfırla', 127 | 'Role': 'Rol', 128 | 'Rows in Table': 'Tablodaki Satırlar', 129 | 'Save model as...': 'Modeli farklı kaydet...', 130 | 'Semantic': 'Anlamsal', 131 | 'Services': 'Hizmetler', 132 | 'state': 'durum', 133 | 'Stylesheet': 'Stil Şablonu', 134 | 'submit': 'gönder', 135 | 'Submit': 'Gönder', 136 | 'Support': 'Destek', 137 | 'Table': 'Tablo', 138 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"sorgulama" "db.table1.field1==\'değer\'" şeklinde bir durumu ifade eder. SQL birleştirmede (JOIN) "db.table1.field1==db.table2.field2" şeklindedir.', 139 | 'The Core': 'Çekirdek', 140 | 'The output of the file is a dictionary that was rendered by the view %s': 'Son olarak fonksiyonların vs. işlenip %s dosyasıyla tasarıma yedirilmesiyle sayfayı görüntüledin', 141 | 'The Views': 'Görünümler', 142 | 'This App': 'Bu Uygulama', 143 | 'This email already has an account': 'Bu e-postaya ait bir hesap zaten var', 144 | 'Timestamp': 'Zaman damgası', 145 | 'Twitter': 'Twitter', 146 | 'Update:': 'Güncelle:', 147 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Karmaşık sorgularda Ve (AND) için (...)&(...) kullanın, Veya (OR) için (...)|(...) kullanın ve DEĞİL (NOT) için ~(...) kullanın. ', 148 | 'User %(id)s Logged-in': '%(id)s Giriş yaptı', 149 | 'User %(id)s Logged-out': '%(id)s çıkış yaptı', 150 | 'User %(id)s Password reset': 'Kullanıc %(id)s Parolasını sıfırla', 151 | 'User %(id)s Registered': '%(id)s Kayıt oldu', 152 | 'User ID': 'Kullanıcı ID', 153 | 'value already in database or empty': 'değer boş ya da veritabanında zaten mevcut', 154 | 'Verify Password': 'Parolanı Onayla', 155 | 'Videos': 'Videolar', 156 | 'View': 'Görünüm', 157 | 'Welcome': 'Hoşgeldin', 158 | 'Welcome to web2py!': "web2py'ye hoşgeldiniz!", 159 | 'Which called the function %s located in the file %s': 'Bu ziyaretle %s fonksiyonunu %s dosyasından çağırmış oldun ', 160 | 'Working...': 'Çalışıyor...', 161 | 'You are successfully running web2py': 'web2py çatısını çalıştırmayı başardın', 162 | 'You can modify this application and adapt it to your needs': 'Artık uygulamayı istediğin gibi düzenleyebilirsin!', 163 | 'You visited the url %s': '%s adresini ziyaret ettin', 164 | 'invalid controller': 'geçersiz denetleyici', 165 | } 166 | 167 | -------------------------------------------------------------------------------- /languages/zh-cn.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'zh-cn', 4 | '!langname!': '中文', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" 应为选择表达式, 格式如 "field1=\'value\'". 但是对 JOIN 的结果不可以使用 update 或者 delete"', 6 | '%s %%{row} deleted': '已删除 %s 笔', 7 | '%s %%{row} updated': '已更新 %s 笔', 8 | '%s selected': '%s 已选择', 9 | '%Y-%m-%d': '%Y-%m-%d', 10 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 11 | '(something like "it-it")': '(格式类似 "zh-tw")', 12 | 'A new version of web2py is available': '新版 web2py 已推出', 13 | 'A new version of web2py is available: %s': '新版 web2py 已推出: %s', 14 | 'about': '关于', 15 | 'About': '关于', 16 | 'About application': '关于本应用程序', 17 | 'Access Control': 'Access Control', 18 | 'Admin is disabled because insecure channel': '管理功能(Admin)在非安全连接环境下自动关闭', 19 | 'Admin is disabled because unsecure channel': '管理功能(Admin)在非安全连接环境下自动关闭', 20 | 'Administrative Interface': 'Administrative Interface', 21 | 'Administrative interface': '点击进入管理界面', 22 | 'Administrator Password:': '管理员密码:', 23 | 'Ajax Recipes': 'Ajax Recipes', 24 | 'An error occured, please %s the page': 'An error occured, please %s the page', 25 | 'appadmin is disabled because insecure channel': '管理界面在非安全通道下被禁用', 26 | 'Are you sure you want to delete file "%s"?': '确定要删除文件"%s"?', 27 | 'Are you sure you want to delete this object?': '确定要删除该对象么?', 28 | 'Are you sure you want to uninstall application "%s"': '确定要删除应用程序 "%s"', 29 | 'Are you sure you want to uninstall application "%s"?': '确定要删除应用程序 "%s"', 30 | 'ATTENTION: Login requires a secure (HTTPS) connection or running on localhost.': '注意: 登录管理账号需要安全连接(HTTPS)或是在本地连接(localhost).', 31 | 'ATTENTION: TESTING IS NOT THREAD SAFE SO DO NOT PERFORM MULTIPLE TESTS CONCURRENTLY.': '注意: 因为在测试模式不保证多线程安全性,所以不可同时执行多个测试案例', 32 | 'ATTENTION: you cannot edit the running application!': '注意:不可编辑正在执行的应用程序!', 33 | 'Authentication': '验证', 34 | 'Available Databases and Tables': '可提供的数据库和数据表', 35 | 'Buy this book': '购买本书', 36 | 'cache': '高速缓存', 37 | 'Cache': 'Cache', 38 | 'Cache Keys': 'Cache Keys', 39 | 'Cannot be empty': '不可空白', 40 | 'Cannot compile: there are errors in your app. Debug it, correct errors and try again.': '编译失败:应用程序有错误,请排除错误后再尝试编译.', 41 | 'Change Password': '修改密码', 42 | 'change password': '修改密码', 43 | 'Check to delete': '打勾以示删除', 44 | 'Check to delete:': '打勾以示删除:', 45 | 'Clear CACHE?': 'Clear CACHE?', 46 | 'Clear DISK': 'Clear DISK', 47 | 'Clear RAM': 'Clear RAM', 48 | 'Client IP': '客户端网址(IP)', 49 | 'Community': 'Community', 50 | 'Components and Plugins': 'Components and Plugins', 51 | 'Controller': '控件', 52 | 'Controllers': '控件', 53 | 'Copyright': '版权所有', 54 | 'Create new application': '创建应用程序', 55 | 'Created By': 'Created By', 56 | 'Created On': 'Created On', 57 | 'Current request': '当前网络要求(request)', 58 | 'Current response': '当前网络响应(response)', 59 | 'Current session': '当前网络连接信息(session)', 60 | 'customize me!': '请调整我!', 61 | 'data uploaded': '数据已上传', 62 | 'Database': '数据库', 63 | 'Database %s select': '已选择 %s 数据库', 64 | 'Date and Time': '日期和时间', 65 | 'db': 'db', 66 | 'DB Model': '数据库模型', 67 | 'Delete': '删除', 68 | 'Delete:': '删除:', 69 | 'Demo': 'Demo', 70 | 'Deploy on Google App Engine': '发布到 Google App Engine', 71 | 'Deployment Recipes': 'Deployment Recipes', 72 | 'Description': '描述', 73 | 'DESIGN': '设计', 74 | 'design': '设计', 75 | 'Design for': '设计用于', 76 | 'DISK': 'DISK', 77 | 'Disk Cache Keys': 'Disk Cache Keys', 78 | 'Disk Cleared': 'Disk Cleared', 79 | 'Documentation': 'Documentation', 80 | "Don't know what to do?": "Don't know what to do?", 81 | 'done!': '完成!', 82 | 'Download': '下载', 83 | 'E-mail': '电子邮件', 84 | 'EDIT': '编辑', 85 | 'Edit': '编辑', 86 | 'Edit application': '编辑应用程序', 87 | 'Edit current record': '编辑当前记录', 88 | 'edit profile': '编辑配置文件', 89 | 'Edit Profile': '编辑配置文件', 90 | 'Edit This App': '编辑本应用程序', 91 | 'Editing file': '编辑文件', 92 | 'Editing file "%s"': '编辑文件"%s"', 93 | 'Email and SMS': 'Email and SMS', 94 | 'enter an integer between %(min)g and %(max)g': 'enter an integer between %(min)g and %(max)g', 95 | 'Error logs for "%(app)s"': '"%(app)s"的错误记录', 96 | 'Errors': 'Errors', 97 | 'export as csv file': '以CSV格式导出', 98 | 'FAQ': 'FAQ', 99 | 'First name': '名', 100 | 'Forgot username?': '忘记用户名?', 101 | 'Forms and Validators': 'Forms and Validators', 102 | 'Free Applications': 'Free Applications', 103 | 'Functions with no doctests will result in [passed] tests.': '沒有 doctests 的函数会显示 [passed].', 104 | 'Group ID': '群组编号', 105 | 'Groups': 'Groups', 106 | 'Hello World': 'Hello World', 107 | 'Home': 'Home', 108 | 'How did you get here?': 'How did you get here?', 109 | 'import': 'import', 110 | 'Import/Export': '导入/导出', 111 | 'Index': '索引', 112 | 'insert new': '插入新纪录', 113 | 'insert new %s': '插入新纪录 %s', 114 | 'Installed applications': '已安裝应用程序', 115 | 'Internal State': '內部状态', 116 | 'Introduction': 'Introduction', 117 | 'Invalid action': '非法操作(action)', 118 | 'Invalid email': '不符合电子邮件格式', 119 | 'Invalid Query': '无效的查询请求', 120 | 'invalid request': '网络要求无效', 121 | 'Is Active': 'Is Active', 122 | 'Key': 'Key', 123 | 'Language files (static strings) updated': '语言文件已更新', 124 | 'Languages': '各国语言', 125 | 'Last name': '姓', 126 | 'Last saved on:': '最后保存时间:', 127 | 'Layout': '网页布局', 128 | 'Layout Plugins': 'Layout Plugins', 129 | 'Layouts': 'Layouts', 130 | 'License for': '软件授权', 131 | 'Live Chat': 'Live Chat', 132 | 'login': '登录', 133 | 'Login': '登录', 134 | 'Login to the Administrative Interface': '登录到管理员界面', 135 | 'logout': '登出', 136 | 'Logout': '登出', 137 | 'Lost Password': '忘记密码', 138 | 'Lost password?': '忘记密码?', 139 | 'Main Menu': '主菜单', 140 | 'Manage Cache': 'Manage Cache', 141 | 'Menu Model': '菜单模型(menu)', 142 | 'Models': '数据模型', 143 | 'Modified By': '修改者', 144 | 'Modified On': '修改时间', 145 | 'Modules': '程序模块', 146 | 'My Sites': 'My Sites', 147 | 'Name': '名字', 148 | 'New Record': '新记录', 149 | 'new record inserted': '已插入新记录', 150 | 'next 100 rows': '往后 100 笔', 151 | 'NO': '否', 152 | 'No databases in this application': '该应用程序不含数据库', 153 | 'Object or table name': 'Object or table name', 154 | 'Online examples': '点击进入在线例子', 155 | 'or import from csv file': '或导入CSV文件', 156 | 'Origin': '原文', 157 | 'Original/Translation': '原文/翻译', 158 | 'Other Plugins': 'Other Plugins', 159 | 'Other Recipes': 'Other Recipes', 160 | 'Overview': '概览', 161 | 'Password': '密码', 162 | "Password fields don't match": '密码不匹配', 163 | 'Peeking at file': '选择文件', 164 | 'Plugins': 'Plugins', 165 | 'Powered by': '基于下列技术构建:', 166 | 'Preface': 'Preface', 167 | 'previous 100 rows': '往前 100 笔', 168 | 'Python': 'Python', 169 | 'Query:': '查询:', 170 | 'Quick Examples': 'Quick Examples', 171 | 'RAM': 'RAM', 172 | 'RAM Cache Keys': 'RAM Cache Keys', 173 | 'Ram Cleared': 'Ram Cleared', 174 | 'Recipes': 'Recipes', 175 | 'Record': '记录', 176 | 'record does not exist': '记录不存在', 177 | 'Record ID': '记录编号', 178 | 'Record id': '记录编号', 179 | 'Register': '注册', 180 | 'register': '注册', 181 | 'Registration identifier': 'Registration identifier', 182 | 'Registration key': '注册密钥', 183 | 'reload': 'reload', 184 | 'Remember me (for 30 days)': '记住我(30 天)', 185 | 'Reset Password key': '重置密码', 186 | 'Resolve Conflict file': '解决冲突文件', 187 | 'Role': '角色', 188 | 'Rows in Table': '在数据表里的记录', 189 | 'Rows selected': '笔记录被选择', 190 | 'Saved file hash:': '已保存文件的哈希值:', 191 | 'Semantic': 'Semantic', 192 | 'Services': 'Services', 193 | 'Size of cache:': 'Size of cache:', 194 | 'state': '状态', 195 | 'Static files': '静态文件', 196 | 'Statistics': '统计数据', 197 | 'Stylesheet': '网页样式表', 198 | 'submit': '提交', 199 | 'Submit': '提交', 200 | 'Support': 'Support', 201 | 'Sure you want to delete this object?': '确定要删除此对象?', 202 | 'Table': '数据表', 203 | 'Table name': '数据表名称', 204 | 'Testing application': '测试中的应用程序', 205 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"query"应是类似 "db.table1.field1==\'value\'" 的条件表达式. "db.table1.field1==db.table2.field2"的形式则代表执行 JOIN SQL.', 206 | 'The Core': 'The Core', 207 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 208 | 'The Views': '视图', 209 | 'There are no controllers': '沒有控件(controllers)', 210 | 'There are no models': '沒有数据库模型(models)', 211 | 'There are no modules': '沒有程序模块(modules)', 212 | 'There are no static files': '沒有静态文件', 213 | 'There are no translators, only default language is supported': '沒有对应的语言文件,仅支持原始语言', 214 | 'There are no views': '沒有视图', 215 | 'This App': '该应用', 216 | 'This is the %(filename)s template': '这是%(filename)s文件的模板(template)', 217 | 'Ticket': '问题清单', 218 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 219 | 'Timestamp': '时间戳', 220 | 'Twitter': 'Twitter', 221 | 'Unable to check for upgrades': '查询新版本失败', 222 | 'Unable to download': '无法下载', 223 | 'Unable to download app': '无法下载应用程序', 224 | 'unable to parse csv file': '无法解析CSV文件', 225 | 'Update:': '更新:', 226 | 'Upload existing application': '上传已有应用程序', 227 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': '使用下列方式可得到更复杂的条件表达式, (...)&(...) 代表必须都满足, (...)|(...) 代表其一, ~(...)则代表否.', 228 | 'User %(id)s Logged-in': '用户 %(id)s 已登录', 229 | 'User %(id)s Registered': '用户 %(id)s 已注册', 230 | 'User ID': '用户编号', 231 | 'Verify Password': '验证密码', 232 | 'Videos': '视频', 233 | 'View': '查看', 234 | 'Views': '视图', 235 | 'Welcome': '欢迎', 236 | 'Welcome %s': '欢迎 %s', 237 | 'Welcome to web2py': '欢迎使用 web2py', 238 | 'Welcome to web2py!': '欢迎使用 web2py!', 239 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 240 | 'YES': '是', 241 | 'You are successfully running web2py': '您已成功运行 web2py', 242 | 'You can modify this application and adapt it to your needs': '请根据您的需要修改本程序', 243 | 'You visited the url %s': 'You visited the url %s', 244 | } 245 | -------------------------------------------------------------------------------- /languages/zh-tw.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'zh-cn', 4 | '!langname!': '中文', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"更新" 是選擇性的條件式, 格式就像 "欄位1=\'值\'". 但是 JOIN 的資料不可以使用 update 或是 delete"', 6 | '%s %%{row} deleted': '已刪除 %s 筆', 7 | '%s %%{row} updated': '已更新 %s 筆', 8 | '%s selected': '%s 已選擇', 9 | '%Y-%m-%d': '%Y-%m-%d', 10 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 11 | '(something like "it-it")': '(格式類似 "zh-tw")', 12 | 'A new version of web2py is available': '新版的 web2py 已發行', 13 | 'A new version of web2py is available: %s': '新版的 web2py 已發行: %s', 14 | 'about': '關於', 15 | 'About': '關於', 16 | 'About application': '關於本應用程式', 17 | 'Access Control': 'Access Control', 18 | 'Admin is disabled because insecure channel': '管理功能(Admin)在不安全連線環境下自動關閉', 19 | 'Admin is disabled because unsecure channel': '管理功能(Admin)在不安全連線環境下自動關閉', 20 | 'Administrative Interface': 'Administrative Interface', 21 | 'Administrative interface': '點此處進入管理介面', 22 | 'Administrator Password:': '管理員密碼:', 23 | 'Ajax Recipes': 'Ajax Recipes', 24 | 'An error occured, please %s the page': 'An error occured, please %s the page', 25 | 'appadmin is disabled because insecure channel': '因為來自非安全通道,管理介面關閉', 26 | 'Are you sure you want to delete file "%s"?': '確定要刪除檔案"%s"?', 27 | 'Are you sure you want to delete this object?': 'Are you sure you want to delete this object?', 28 | 'Are you sure you want to uninstall application "%s"': '確定要移除應用程式 "%s"', 29 | 'Are you sure you want to uninstall application "%s"?': '確定要移除應用程式 "%s"', 30 | 'ATTENTION: Login requires a secure (HTTPS) connection or running on localhost.': '注意: 登入管理帳號需要安全連線(HTTPS)或是在本機連線(localhost).', 31 | 'ATTENTION: TESTING IS NOT THREAD SAFE SO DO NOT PERFORM MULTIPLE TESTS CONCURRENTLY.': '注意: 因為在測試模式不保證多執行緒安全性,也就是說不可以同時執行多個測試案例', 32 | 'ATTENTION: you cannot edit the running application!': '注意:不可編輯正在執行的應用程式!', 33 | 'Authentication': '驗證', 34 | 'Available Databases and Tables': '可提供的資料庫和資料表', 35 | 'Buy this book': 'Buy this book', 36 | 'cache': '快取記憶體', 37 | 'Cache': 'Cache', 38 | 'Cache Keys': 'Cache Keys', 39 | 'Cannot be empty': '不可空白', 40 | 'Cannot compile: there are errors in your app. Debug it, correct errors and try again.': '無法編譯:應用程式中含有錯誤,請除錯後再試一次.', 41 | 'Change Password': '變更密碼', 42 | 'change password': '變更密碼', 43 | 'Check to delete': '打勾代表刪除', 44 | 'Check to delete:': '點選以示刪除:', 45 | 'Clear CACHE?': 'Clear CACHE?', 46 | 'Clear DISK': 'Clear DISK', 47 | 'Clear RAM': 'Clear RAM', 48 | 'Client IP': '客戶端網址(IP)', 49 | 'Community': 'Community', 50 | 'Components and Plugins': 'Components and Plugins', 51 | 'Controller': '控件', 52 | 'Controllers': '控件', 53 | 'Copyright': '版權所有', 54 | 'Create new application': '創建應用程式', 55 | 'Created By': 'Created By', 56 | 'Created On': 'Created On', 57 | 'Current request': '目前網路資料要求(request)', 58 | 'Current response': '目前網路資料回應(response)', 59 | 'Current session': '目前網路連線資訊(session)', 60 | 'customize me!': '請調整我!', 61 | 'data uploaded': '資料已上傳', 62 | 'Database': '資料庫', 63 | 'Database %s select': '已選擇 %s 資料庫', 64 | 'Date and Time': '日期和時間', 65 | 'db': 'db', 66 | 'DB Model': '資料庫模組', 67 | 'Delete': '刪除', 68 | 'Delete:': '刪除:', 69 | 'Demo': 'Demo', 70 | 'Deploy on Google App Engine': '配置到 Google App Engine', 71 | 'Deployment Recipes': 'Deployment Recipes', 72 | 'Description': '描述', 73 | 'DESIGN': '設計', 74 | 'design': '設計', 75 | 'Design for': '設計為了', 76 | 'DISK': 'DISK', 77 | 'Disk Cache Keys': 'Disk Cache Keys', 78 | 'Disk Cleared': 'Disk Cleared', 79 | 'Documentation': 'Documentation', 80 | "Don't know what to do?": "Don't know what to do?", 81 | 'done!': '完成!', 82 | 'Download': 'Download', 83 | 'E-mail': '電子郵件', 84 | 'EDIT': '編輯', 85 | 'Edit': '編輯', 86 | 'Edit application': '編輯應用程式', 87 | 'Edit current record': '編輯當前紀錄', 88 | 'edit profile': '編輯設定檔', 89 | 'Edit Profile': '編輯設定檔', 90 | 'Edit This App': '編輯本應用程式', 91 | 'Editing file': '編輯檔案', 92 | 'Editing file "%s"': '編輯檔案"%s"', 93 | 'Email and SMS': 'Email and SMS', 94 | 'enter an integer between %(min)g and %(max)g': 'enter an integer between %(min)g and %(max)g', 95 | 'Error logs for "%(app)s"': '"%(app)s"的錯誤紀錄', 96 | 'Errors': 'Errors', 97 | 'export as csv file': '以逗號分隔檔(csv)格式匯出', 98 | 'FAQ': 'FAQ', 99 | 'First name': '名', 100 | 'Forgot username?': 'Forgot username?', 101 | 'Forms and Validators': 'Forms and Validators', 102 | 'Free Applications': 'Free Applications', 103 | 'Functions with no doctests will result in [passed] tests.': '沒有 doctests 的函式會顯示 [passed].', 104 | 'Group ID': '群組編號', 105 | 'Groups': 'Groups', 106 | 'Hello World': '嗨! 世界', 107 | 'Home': 'Home', 108 | 'How did you get here?': 'How did you get here?', 109 | 'import': 'import', 110 | 'Import/Export': '匯入/匯出', 111 | 'Index': '索引', 112 | 'insert new': '插入新資料', 113 | 'insert new %s': '插入新資料 %s', 114 | 'Installed applications': '已安裝應用程式', 115 | 'Internal State': '內部狀態', 116 | 'Introduction': 'Introduction', 117 | 'Invalid action': '不合法的動作(action)', 118 | 'Invalid email': '不合法的電子郵件', 119 | 'Invalid Query': '不合法的查詢', 120 | 'invalid request': '不合法的網路要求(request)', 121 | 'Is Active': 'Is Active', 122 | 'Key': 'Key', 123 | 'Language files (static strings) updated': '語言檔已更新', 124 | 'Languages': '各國語言', 125 | 'Last name': '姓', 126 | 'Last saved on:': '最後儲存時間:', 127 | 'Layout': '網頁配置', 128 | 'Layout Plugins': 'Layout Plugins', 129 | 'Layouts': 'Layouts', 130 | 'License for': '軟體版權為', 131 | 'Live Chat': 'Live Chat', 132 | 'login': '登入', 133 | 'Login': '登入', 134 | 'Login to the Administrative Interface': '登入到管理員介面', 135 | 'logout': '登出', 136 | 'Logout': '登出', 137 | 'Lost Password': '密碼遺忘', 138 | 'Lost password?': 'Lost password?', 139 | 'Main Menu': '主選單', 140 | 'Manage Cache': 'Manage Cache', 141 | 'Menu Model': '選單模組(menu)', 142 | 'Models': '資料模組', 143 | 'Modified By': 'Modified By', 144 | 'Modified On': 'Modified On', 145 | 'Modules': '程式模組', 146 | 'My Sites': 'My Sites', 147 | 'Name': '名字', 148 | 'New Record': '新紀錄', 149 | 'new record inserted': '已插入新紀錄', 150 | 'next 100 rows': '往後 100 筆', 151 | 'NO': '否', 152 | 'No databases in this application': '這應用程式不含資料庫', 153 | 'Object or table name': 'Object or table name', 154 | 'Online examples': '點此處進入線上範例', 155 | 'or import from csv file': '或是從逗號分隔檔(CSV)匯入', 156 | 'Origin': '原文', 157 | 'Original/Translation': '原文/翻譯', 158 | 'Other Plugins': 'Other Plugins', 159 | 'Other Recipes': 'Other Recipes', 160 | 'Overview': 'Overview', 161 | 'Password': '密碼', 162 | "Password fields don't match": '密碼欄不匹配', 163 | 'Peeking at file': '選擇檔案', 164 | 'Plugins': 'Plugins', 165 | 'Powered by': '基於以下技術構建:', 166 | 'Preface': 'Preface', 167 | 'previous 100 rows': '往前 100 筆', 168 | 'Python': 'Python', 169 | 'Query:': '查詢:', 170 | 'Quick Examples': 'Quick Examples', 171 | 'RAM': 'RAM', 172 | 'RAM Cache Keys': 'RAM Cache Keys', 173 | 'Ram Cleared': 'Ram Cleared', 174 | 'Recipes': 'Recipes', 175 | 'Record': '紀錄', 176 | 'record does not exist': '紀錄不存在', 177 | 'Record ID': '紀錄編號', 178 | 'Record id': '紀錄編號', 179 | 'Register': '註冊', 180 | 'register': '註冊', 181 | 'Registration identifier': 'Registration identifier', 182 | 'Registration key': '註冊金鑰', 183 | 'reload': 'reload', 184 | 'Remember me (for 30 days)': '記住我(30 天)', 185 | 'Reset Password key': '重設密碼', 186 | 'Resolve Conflict file': '解決衝突檔案', 187 | 'Role': '角色', 188 | 'Rows in Table': '在資料表裏的資料', 189 | 'Rows selected': '筆資料被選擇', 190 | 'Saved file hash:': '檔案雜湊值已紀錄:', 191 | 'Semantic': 'Semantic', 192 | 'Services': 'Services', 193 | 'Size of cache:': 'Size of cache:', 194 | 'state': '狀態', 195 | 'Static files': '靜態檔案', 196 | 'Statistics': 'Statistics', 197 | 'Stylesheet': '網頁風格檔', 198 | 'submit': 'submit', 199 | 'Submit': '傳送', 200 | 'Support': 'Support', 201 | 'Sure you want to delete this object?': '確定要刪除此物件?', 202 | 'Table': '資料表', 203 | 'Table name': '資料表名稱', 204 | 'Testing application': '測試中的應用程式', 205 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"查詢"是一個像 "db.表1.欄位1==\'值\'" 的條件式. 以"db.表1.欄位1==db.表2.欄位2"方式則相當於執行 JOIN SQL.', 206 | 'The Core': 'The Core', 207 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 208 | 'The Views': 'The Views', 209 | 'There are no controllers': '沒有控件(controllers)', 210 | 'There are no models': '沒有資料庫模組(models)', 211 | 'There are no modules': '沒有程式模組(modules)', 212 | 'There are no static files': '沒有靜態檔案', 213 | 'There are no translators, only default language is supported': '沒有翻譯檔,只支援原始語言', 214 | 'There are no views': '沒有視圖', 215 | 'This App': 'This App', 216 | 'This is the %(filename)s template': '這是%(filename)s檔案的樣板(template)', 217 | 'Ticket': '問題單', 218 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 219 | 'Timestamp': '時間標記', 220 | 'Twitter': 'Twitter', 221 | 'Unable to check for upgrades': '無法做升級檢查', 222 | 'Unable to download': '無法下載', 223 | 'Unable to download app': '無法下載應用程式', 224 | 'unable to parse csv file': '無法解析逗號分隔檔(csv)', 225 | 'Update:': '更新:', 226 | 'Upload existing application': '更新存在的應用程式', 227 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': '使用下列方式來組合更複雜的條件式, (...)&(...) 代表同時存在的條件, (...)|(...) 代表擇一的條件, ~(...)則代表反向條件.', 228 | 'User %(id)s Logged-in': '使用者 %(id)s 已登入', 229 | 'User %(id)s Registered': '使用者 %(id)s 已註冊', 230 | 'User ID': '使用者編號', 231 | 'Verify Password': '驗證密碼', 232 | 'Videos': 'Videos', 233 | 'View': '視圖', 234 | 'Views': '視圖', 235 | 'Welcome': 'Welcome', 236 | 'Welcome %s': '歡迎 %s', 237 | 'Welcome to web2py': '歡迎使用 web2py', 238 | 'Welcome to web2py!': 'Welcome to web2py!', 239 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 240 | 'YES': '是', 241 | 'You are successfully running web2py': 'You are successfully running web2py', 242 | 'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs', 243 | 'You visited the url %s': 'You visited the url %s', 244 | } 245 | -------------------------------------------------------------------------------- /languages/zh.py: -------------------------------------------------------------------------------- 1 | # coding: utf8 2 | { 3 | '!langcode!': 'zh-tw', 4 | '!langname!': '中文', 5 | '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"更新" 是選擇性的條件式, 格式就像 "欄位1=\'值\'". 但是 JOIN 的資料不可以使用 update 或是 delete"', 6 | '%s %%{row} deleted': '已刪除 %s 筆', 7 | '%s %%{row} updated': '已更新 %s 筆', 8 | '%s selected': '%s 已選擇', 9 | '%Y-%m-%d': '%Y-%m-%d', 10 | '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', 11 | '(something like "it-it")': '(格式類似 "zh-tw")', 12 | 'A new version of web2py is available': '新版的 web2py 已發行', 13 | 'A new version of web2py is available: %s': '新版的 web2py 已發行: %s', 14 | 'about': '關於', 15 | 'About': '關於', 16 | 'About application': '關於本應用程式', 17 | 'Access Control': 'Access Control', 18 | 'Admin is disabled because insecure channel': '管理功能(Admin)在不安全連線環境下自動關閉', 19 | 'Admin is disabled because unsecure channel': '管理功能(Admin)在不安全連線環境下自動關閉', 20 | 'Administrative Interface': 'Administrative Interface', 21 | 'Administrative interface': '點此處進入管理介面', 22 | 'Administrator Password:': '管理員密碼:', 23 | 'Ajax Recipes': 'Ajax Recipes', 24 | 'appadmin is disabled because insecure channel': '因為來自非安全通道,管理介面關閉', 25 | 'Are you sure you want to delete file "%s"?': '確定要刪除檔案"%s"?', 26 | 'Are you sure you want to delete this object?': 'Are you sure you want to delete this object?', 27 | 'Are you sure you want to uninstall application "%s"': '確定要移除應用程式 "%s"', 28 | 'Are you sure you want to uninstall application "%s"?': '確定要移除應用程式 "%s"', 29 | 'ATTENTION: Login requires a secure (HTTPS) connection or running on localhost.': '注意: 登入管理帳號需要安全連線(HTTPS)或是在本機連線(localhost).', 30 | 'ATTENTION: TESTING IS NOT THREAD SAFE SO DO NOT PERFORM MULTIPLE TESTS CONCURRENTLY.': '注意: 因為在測試模式不保證多執行緒安全性,也就是說不可以同時執行多個測試案例', 31 | 'ATTENTION: you cannot edit the running application!': '注意:不可編輯正在執行的應用程式!', 32 | 'Authentication': '驗證', 33 | 'Available Databases and Tables': '可提供的資料庫和資料表', 34 | 'Buy this book': 'Buy this book', 35 | 'cache': '快取記憶體', 36 | 'Cache': 'Cache', 37 | 'Cache Keys': 'Cache Keys', 38 | 'Cannot be empty': '不可空白', 39 | 'Cannot compile: there are errors in your app. Debug it, correct errors and try again.': '無法編譯:應用程式中含有錯誤,請除錯後再試一次.', 40 | 'Change Password': '變更密碼', 41 | 'change password': '變更密碼', 42 | 'Check to delete': '打勾代表刪除', 43 | 'Check to delete:': '點選以示刪除:', 44 | 'Clear CACHE?': 'Clear CACHE?', 45 | 'Clear DISK': 'Clear DISK', 46 | 'Clear RAM': 'Clear RAM', 47 | 'Client IP': '客戶端網址(IP)', 48 | 'Community': 'Community', 49 | 'Components and Plugins': 'Components and Plugins', 50 | 'Controller': '控件', 51 | 'Controllers': '控件', 52 | 'Copyright': '版權所有', 53 | 'Create new application': '創建應用程式', 54 | 'Current request': '目前網路資料要求(request)', 55 | 'Current response': '目前網路資料回應(response)', 56 | 'Current session': '目前網路連線資訊(session)', 57 | 'customize me!': '請調整我!', 58 | 'data uploaded': '資料已上傳', 59 | 'Database': '資料庫', 60 | 'Database %s select': '已選擇 %s 資料庫', 61 | 'Date and Time': '日期和時間', 62 | 'db': 'db', 63 | 'DB Model': '資料庫模組', 64 | 'Delete': '刪除', 65 | 'Delete:': '刪除:', 66 | 'Demo': 'Demo', 67 | 'Deploy on Google App Engine': '配置到 Google App Engine', 68 | 'Deployment Recipes': 'Deployment Recipes', 69 | 'Description': '描述', 70 | 'DESIGN': '設計', 71 | 'design': '設計', 72 | 'Design for': '設計為了', 73 | 'DISK': 'DISK', 74 | 'Disk Cache Keys': 'Disk Cache Keys', 75 | 'Disk Cleared': 'Disk Cleared', 76 | 'Documentation': 'Documentation', 77 | "Don't know what to do?": "Don't know what to do?", 78 | 'done!': '完成!', 79 | 'Download': 'Download', 80 | 'E-mail': '電子郵件', 81 | 'EDIT': '編輯', 82 | 'Edit': '編輯', 83 | 'Edit application': '編輯應用程式', 84 | 'Edit current record': '編輯當前紀錄', 85 | 'edit profile': '編輯設定檔', 86 | 'Edit Profile': '編輯設定檔', 87 | 'Edit This App': '編輯本應用程式', 88 | 'Editing file': '編輯檔案', 89 | 'Editing file "%s"': '編輯檔案"%s"', 90 | 'Email and SMS': 'Email and SMS', 91 | 'Error logs for "%(app)s"': '"%(app)s"的錯誤紀錄', 92 | 'Errors': 'Errors', 93 | 'export as csv file': '以逗號分隔檔(csv)格式匯出', 94 | 'FAQ': 'FAQ', 95 | 'First name': '名', 96 | 'Forms and Validators': 'Forms and Validators', 97 | 'Free Applications': 'Free Applications', 98 | 'Functions with no doctests will result in [passed] tests.': '沒有 doctests 的函式會顯示 [passed].', 99 | 'Group ID': '群組編號', 100 | 'Groups': 'Groups', 101 | 'Hello World': '嗨! 世界', 102 | 'Home': 'Home', 103 | 'How did you get here?': 'How did you get here?', 104 | 'import': 'import', 105 | 'Import/Export': '匯入/匯出', 106 | 'Index': '索引', 107 | 'insert new': '插入新資料', 108 | 'insert new %s': '插入新資料 %s', 109 | 'Installed applications': '已安裝應用程式', 110 | 'Internal State': '內部狀態', 111 | 'Introduction': 'Introduction', 112 | 'Invalid action': '不合法的動作(action)', 113 | 'Invalid email': '不合法的電子郵件', 114 | 'Invalid Query': '不合法的查詢', 115 | 'invalid request': '不合法的網路要求(request)', 116 | 'Key': 'Key', 117 | 'Language files (static strings) updated': '語言檔已更新', 118 | 'Languages': '各國語言', 119 | 'Last name': '姓', 120 | 'Last saved on:': '最後儲存時間:', 121 | 'Layout': '網頁配置', 122 | 'Layout Plugins': 'Layout Plugins', 123 | 'Layouts': 'Layouts', 124 | 'License for': '軟體版權為', 125 | 'Live Chat': 'Live Chat', 126 | 'login': '登入', 127 | 'Login': '登入', 128 | 'Login to the Administrative Interface': '登入到管理員介面', 129 | 'logout': '登出', 130 | 'Logout': '登出', 131 | 'Lost Password': '密碼遺忘', 132 | 'Main Menu': '主選單', 133 | 'Manage Cache': 'Manage Cache', 134 | 'Menu Model': '選單模組(menu)', 135 | 'Models': '資料模組', 136 | 'Modules': '程式模組', 137 | 'My Sites': 'My Sites', 138 | 'Name': '名字', 139 | 'New Record': '新紀錄', 140 | 'new record inserted': '已插入新紀錄', 141 | 'next 100 rows': '往後 100 筆', 142 | 'NO': '否', 143 | 'No databases in this application': '這應用程式不含資料庫', 144 | 'Online examples': '點此處進入線上範例', 145 | 'or import from csv file': '或是從逗號分隔檔(CSV)匯入', 146 | 'Origin': '原文', 147 | 'Original/Translation': '原文/翻譯', 148 | 'Other Plugins': 'Other Plugins', 149 | 'Other Recipes': 'Other Recipes', 150 | 'Overview': 'Overview', 151 | 'Password': '密碼', 152 | "Password fields don't match": '密碼欄不匹配', 153 | 'Peeking at file': '選擇檔案', 154 | 'Plugins': 'Plugins', 155 | 'Powered by': '基於以下技術構建:', 156 | 'Preface': 'Preface', 157 | 'previous 100 rows': '往前 100 筆', 158 | 'Python': 'Python', 159 | 'Query:': '查詢:', 160 | 'Quick Examples': 'Quick Examples', 161 | 'RAM': 'RAM', 162 | 'RAM Cache Keys': 'RAM Cache Keys', 163 | 'Ram Cleared': 'Ram Cleared', 164 | 'Recipes': 'Recipes', 165 | 'Record': '紀錄', 166 | 'record does not exist': '紀錄不存在', 167 | 'Record ID': '紀錄編號', 168 | 'Record id': '紀錄編號', 169 | 'Register': '註冊', 170 | 'register': '註冊', 171 | 'Registration key': '註冊金鑰', 172 | 'Remember me (for 30 days)': '記住我(30 天)', 173 | 'Reset Password key': '重設密碼', 174 | 'Resolve Conflict file': '解決衝突檔案', 175 | 'Role': '角色', 176 | 'Rows in Table': '在資料表裏的資料', 177 | 'Rows selected': '筆資料被選擇', 178 | 'Saved file hash:': '檔案雜湊值已紀錄:', 179 | 'Semantic': 'Semantic', 180 | 'Services': 'Services', 181 | 'Size of cache:': 'Size of cache:', 182 | 'state': '狀態', 183 | 'Static files': '靜態檔案', 184 | 'Statistics': 'Statistics', 185 | 'Stylesheet': '網頁風格檔', 186 | 'submit': 'submit', 187 | 'Submit': '傳送', 188 | 'Support': 'Support', 189 | 'Sure you want to delete this object?': '確定要刪除此物件?', 190 | 'Table': '資料表', 191 | 'Table name': '資料表名稱', 192 | 'Testing application': '測試中的應用程式', 193 | 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"查詢"是一個像 "db.表1.欄位1==\'值\'" 的條件式. 以"db.表1.欄位1==db.表2.欄位2"方式則相當於執行 JOIN SQL.', 194 | 'The Core': 'The Core', 195 | 'The output of the file is a dictionary that was rendered by the view %s': 'The output of the file is a dictionary that was rendered by the view %s', 196 | 'The Views': 'The Views', 197 | 'There are no controllers': '沒有控件(controllers)', 198 | 'There are no models': '沒有資料庫模組(models)', 199 | 'There are no modules': '沒有程式模組(modules)', 200 | 'There are no static files': '沒有靜態檔案', 201 | 'There are no translators, only default language is supported': '沒有翻譯檔,只支援原始語言', 202 | 'There are no views': '沒有視圖', 203 | 'This App': 'This App', 204 | 'This is the %(filename)s template': '這是%(filename)s檔案的樣板(template)', 205 | 'Ticket': '問題單', 206 | 'Time in Cache (h:m:s)': 'Time in Cache (h:m:s)', 207 | 'Timestamp': '時間標記', 208 | 'Twitter': 'Twitter', 209 | 'Unable to check for upgrades': '無法做升級檢查', 210 | 'Unable to download': '無法下載', 211 | 'Unable to download app': '無法下載應用程式', 212 | 'unable to parse csv file': '無法解析逗號分隔檔(csv)', 213 | 'Update:': '更新:', 214 | 'Upload existing application': '更新存在的應用程式', 215 | 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': '使用下列方式來組合更複雜的條件式, (...)&(...) 代表同時存在的條件, (...)|(...) 代表擇一的條件, ~(...)則代表反向條件.', 216 | 'User %(id)s Logged-in': '使用者 %(id)s 已登入', 217 | 'User %(id)s Registered': '使用者 %(id)s 已註冊', 218 | 'User ID': '使用者編號', 219 | 'Verify Password': '驗證密碼', 220 | 'Videos': 'Videos', 221 | 'View': '視圖', 222 | 'Views': '視圖', 223 | 'Welcome %s': '歡迎 %s', 224 | 'Welcome to web2py': '歡迎使用 web2py', 225 | 'Welcome to web2py!': 'Welcome to web2py!', 226 | 'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s', 227 | 'YES': '是', 228 | 'You are successfully running web2py': 'You are successfully running web2py', 229 | 'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs', 230 | 'You visited the url %s': 'You visited the url %s', 231 | } 232 | -------------------------------------------------------------------------------- /models/db.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # ------------------------------------------------------------------------- 4 | # This scaffolding model makes your app work on Google App Engine too 5 | # File is released under public domain and you can use without limitations 6 | # ------------------------------------------------------------------------- 7 | 8 | if request.global_settings.web2py_version < "2.14.1": 9 | raise HTTP(500, "Requires web2py 2.13.3 or newer") 10 | 11 | # ------------------------------------------------------------------------- 12 | # if SSL/HTTPS is properly configured and you want all HTTP requests to 13 | # be redirected to HTTPS, uncomment the line below: 14 | # ------------------------------------------------------------------------- 15 | # request.requires_https() 16 | 17 | # ------------------------------------------------------------------------- 18 | # app configuration made easy. Look inside private/appconfig.ini 19 | # ------------------------------------------------------------------------- 20 | from gluon.contrib.appconfig import AppConfig 21 | 22 | # ------------------------------------------------------------------------- 23 | # once in production, remove reload=True to gain full speed 24 | # ------------------------------------------------------------------------- 25 | myconf = AppConfig(reload=True) 26 | 27 | if not request.env.web2py_runtime_gae: 28 | # --------------------------------------------------------------------- 29 | # if NOT running on Google App Engine use SQLite or other DB 30 | # --------------------------------------------------------------------- 31 | db = DAL(myconf.get('db.uri'), 32 | pool_size=myconf.get('db.pool_size'), 33 | migrate_enabled=myconf.get('db.migrate'), 34 | check_reserved=['all']) 35 | else: 36 | # --------------------------------------------------------------------- 37 | # connect to Google BigTable (optional 'google:datastore://namespace') 38 | # --------------------------------------------------------------------- 39 | db = DAL('google:datastore+ndb') 40 | # --------------------------------------------------------------------- 41 | # store sessions and tickets there 42 | # --------------------------------------------------------------------- 43 | session.connect(request, response, db=db) 44 | # --------------------------------------------------------------------- 45 | # or store session in Memcache, Redis, etc. 46 | # from gluon.contrib.memdb import MEMDB 47 | # from google.appengine.api.memcache import Client 48 | # session.connect(request, response, db = MEMDB(Client())) 49 | # --------------------------------------------------------------------- 50 | 51 | # ------------------------------------------------------------------------- 52 | # by default give a view/generic.extension to all actions from localhost 53 | # none otherwise. a pattern can be 'controller/function.extension' 54 | # ------------------------------------------------------------------------- 55 | response.generic_patterns = ['*'] if request.is_local else [] 56 | # ------------------------------------------------------------------------- 57 | # choose a style for forms 58 | # ------------------------------------------------------------------------- 59 | response.formstyle = myconf.get('forms.formstyle') # or 'bootstrap3_stacked' or 'bootstrap2' or other 60 | response.form_label_separator = myconf.get('forms.separator') or '' 61 | 62 | # ------------------------------------------------------------------------- 63 | # (optional) optimize handling of static files 64 | # ------------------------------------------------------------------------- 65 | # response.optimize_css = 'concat,minify,inline' 66 | # response.optimize_js = 'concat,minify,inline' 67 | 68 | # ------------------------------------------------------------------------- 69 | # (optional) static assets folder versioning 70 | # ------------------------------------------------------------------------- 71 | # response.static_version = '0.0.0' 72 | 73 | # ------------------------------------------------------------------------- 74 | # Here is sample code if you need for 75 | # - email capabilities 76 | # - authentication (registration, login, logout, ... ) 77 | # - authorization (role based authorization) 78 | # - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss) 79 | # - old style crud actions 80 | # (more options discussed in gluon/tools.py) 81 | # ------------------------------------------------------------------------- 82 | 83 | from gluon.tools import Auth, Service, PluginManager 84 | 85 | # host names must be a list of allowed host names (glob syntax allowed) 86 | auth = Auth(db, host_names=myconf.get('host.names')) 87 | service = Service() 88 | plugins = PluginManager() 89 | 90 | # ------------------------------------------------------------------------- 91 | # create all tables needed by auth if not custom tables 92 | # ------------------------------------------------------------------------- 93 | auth.define_tables(username=False, signature=False) 94 | 95 | # ------------------------------------------------------------------------- 96 | # configure email 97 | # ------------------------------------------------------------------------- 98 | mail = auth.settings.mailer 99 | mail.settings.server = 'logging' if request.is_local else myconf.get('smtp.server') 100 | mail.settings.sender = myconf.get('smtp.sender') 101 | mail.settings.login = myconf.get('smtp.login') 102 | mail.settings.tls = myconf.get('smtp.tls') or False 103 | mail.settings.ssl = myconf.get('smtp.ssl') or False 104 | 105 | # ------------------------------------------------------------------------- 106 | # configure auth policy 107 | # ------------------------------------------------------------------------- 108 | auth.settings.registration_requires_verification = False 109 | auth.settings.registration_requires_approval = False 110 | auth.settings.reset_password_requires_verification = True 111 | 112 | # ------------------------------------------------------------------------- 113 | # Define your tables below (or better in another model file) for example 114 | # 115 | # >>> db.define_table('mytable', Field('myfield', 'string')) 116 | # 117 | # Fields can be 'string','text','password','integer','double','boolean' 118 | # 'date','time','datetime','blob','upload', 'reference TABLENAME' 119 | # There is an implicit 'id integer autoincrement' field 120 | # Consult manual for more options, validators, etc. 121 | # 122 | # More API examples for controllers: 123 | # 124 | # >>> db.mytable.insert(myfield='value') 125 | # >>> rows = db(db.mytable.myfield == 'value').select(db.mytable.ALL) 126 | # >>> for row in rows: print row.id, row.myfield 127 | # ------------------------------------------------------------------------- 128 | 129 | # ------------------------------------------------------------------------- 130 | # after defining tables, uncomment below to enable auditing 131 | # ------------------------------------------------------------------------- 132 | # auth.enable_record_versioning(db) 133 | -------------------------------------------------------------------------------- /models/menu.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # this file is released under public domain and you can use without limitations 3 | 4 | # ---------------------------------------------------------------------------------------------------------------------- 5 | # Customize your APP title, subtitle and menus here 6 | # ---------------------------------------------------------------------------------------------------------------------- 7 | 8 | response.logo = A(B('web', SPAN(2), 'py'), XML('™ '), 9 | _class="navbar-brand", _href="http://www.web2py.com/", 10 | _id="web2py-logo") 11 | response.title = request.application.replace('_', ' ').title() 12 | response.subtitle = '' 13 | 14 | # ---------------------------------------------------------------------------------------------------------------------- 15 | # read more at http://dev.w3.org/html5/markup/meta.name.html 16 | # ---------------------------------------------------------------------------------------------------------------------- 17 | response.meta.author = myconf.get('app.author') 18 | response.meta.description = myconf.get('app.description') 19 | response.meta.keywords = myconf.get('app.keywords') 20 | response.meta.generator = myconf.get('app.generator') 21 | 22 | # ---------------------------------------------------------------------------------------------------------------------- 23 | # your http://google.com/analytics id 24 | # ---------------------------------------------------------------------------------------------------------------------- 25 | response.google_analytics_id = None 26 | 27 | # ---------------------------------------------------------------------------------------------------------------------- 28 | # this is the main application menu add/remove items as required 29 | # ---------------------------------------------------------------------------------------------------------------------- 30 | 31 | response.menu = [ 32 | (T('Home'), False, URL('default', 'index'), []) 33 | ] 34 | 35 | DEVELOPMENT_MENU = True 36 | 37 | 38 | # ---------------------------------------------------------------------------------------------------------------------- 39 | # provide shortcuts for development. remove in production 40 | # ---------------------------------------------------------------------------------------------------------------------- 41 | 42 | def _(): 43 | # ------------------------------------------------------------------------------------------------------------------ 44 | # shortcuts 45 | # ------------------------------------------------------------------------------------------------------------------ 46 | app = request.application 47 | ctr = request.controller 48 | # ------------------------------------------------------------------------------------------------------------------ 49 | # useful links to internal and external resources 50 | # ------------------------------------------------------------------------------------------------------------------ 51 | response.menu += [ 52 | (T('My Sites'), False, URL('admin', 'default', 'site')), 53 | (T('This App'), False, '#', [ 54 | (T('Design'), False, URL('admin', 'default', 'design/%s' % app)), 55 | LI(_class="divider"), 56 | (T('Controller'), False, 57 | URL( 58 | 'admin', 'default', 'edit/%s/controllers/%s.py' % (app, ctr))), 59 | (T('View'), False, 60 | URL( 61 | 'admin', 'default', 'edit/%s/views/%s' % (app, response.view))), 62 | (T('DB Model'), False, 63 | URL( 64 | 'admin', 'default', 'edit/%s/models/db.py' % app)), 65 | (T('Menu Model'), False, 66 | URL( 67 | 'admin', 'default', 'edit/%s/models/menu.py' % app)), 68 | (T('Config.ini'), False, 69 | URL( 70 | 'admin', 'default', 'edit/%s/private/appconfig.ini' % app)), 71 | (T('Layout'), False, 72 | URL( 73 | 'admin', 'default', 'edit/%s/views/layout.html' % app)), 74 | (T('Stylesheet'), False, 75 | URL( 76 | 'admin', 'default', 'edit/%s/static/css/web2py-bootstrap3.css' % app)), 77 | (T('Database'), False, URL(app, 'appadmin', 'index')), 78 | (T('Errors'), False, URL( 79 | 'admin', 'default', 'errors/' + app)), 80 | (T('About'), False, URL( 81 | 'admin', 'default', 'about/' + app)), 82 | ]), 83 | ('web2py.com', False, '#', [ 84 | (T('Download'), False, 85 | 'http://www.web2py.com/examples/default/download'), 86 | (T('Support'), False, 87 | 'http://www.web2py.com/examples/default/support'), 88 | (T('Demo'), False, 'http://web2py.com/demo_admin'), 89 | (T('Quick Examples'), False, 90 | 'http://web2py.com/examples/default/examples'), 91 | (T('FAQ'), False, 'http://web2py.com/AlterEgo'), 92 | (T('Videos'), False, 93 | 'http://www.web2py.com/examples/default/videos/'), 94 | (T('Free Applications'), 95 | False, 'http://web2py.com/appliances'), 96 | (T('Plugins'), False, 'http://web2py.com/plugins'), 97 | (T('Recipes'), False, 'http://web2pyslices.com/'), 98 | ]), 99 | (T('Documentation'), False, '#', [ 100 | (T('Online book'), False, 'http://www.web2py.com/book'), 101 | LI(_class="divider"), 102 | (T('Preface'), False, 103 | 'http://www.web2py.com/book/default/chapter/00'), 104 | (T('Introduction'), False, 105 | 'http://www.web2py.com/book/default/chapter/01'), 106 | (T('Python'), False, 107 | 'http://www.web2py.com/book/default/chapter/02'), 108 | (T('Overview'), False, 109 | 'http://www.web2py.com/book/default/chapter/03'), 110 | (T('The Core'), False, 111 | 'http://www.web2py.com/book/default/chapter/04'), 112 | (T('The Views'), False, 113 | 'http://www.web2py.com/book/default/chapter/05'), 114 | (T('Database'), False, 115 | 'http://www.web2py.com/book/default/chapter/06'), 116 | (T('Forms and Validators'), False, 117 | 'http://www.web2py.com/book/default/chapter/07'), 118 | (T('Email and SMS'), False, 119 | 'http://www.web2py.com/book/default/chapter/08'), 120 | (T('Access Control'), False, 121 | 'http://www.web2py.com/book/default/chapter/09'), 122 | (T('Services'), False, 123 | 'http://www.web2py.com/book/default/chapter/10'), 124 | (T('Ajax Recipes'), False, 125 | 'http://www.web2py.com/book/default/chapter/11'), 126 | (T('Components and Plugins'), False, 127 | 'http://www.web2py.com/book/default/chapter/12'), 128 | (T('Deployment Recipes'), False, 129 | 'http://www.web2py.com/book/default/chapter/13'), 130 | (T('Other Recipes'), False, 131 | 'http://www.web2py.com/book/default/chapter/14'), 132 | (T('Helping web2py'), False, 133 | 'http://www.web2py.com/book/default/chapter/15'), 134 | (T("Buy web2py's book"), False, 135 | 'http://stores.lulu.com/web2py'), 136 | ]), 137 | (T('Community'), False, None, [ 138 | (T('Groups'), False, 139 | 'http://www.web2py.com/examples/default/usergroups'), 140 | (T('Twitter'), False, 'http://twitter.com/web2py'), 141 | (T('Live Chat'), False, 142 | 'http://webchat.freenode.net/?channels=web2py'), 143 | ]), 144 | ] 145 | 146 | 147 | if DEVELOPMENT_MENU: 148 | _() 149 | 150 | if "auth" in locals(): 151 | auth.wikimenu() 152 | -------------------------------------------------------------------------------- /modules/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /private/appconfig.ini: -------------------------------------------------------------------------------- 1 | ; App configuration 2 | [app] 3 | name = Welcome 4 | author = Your Name 5 | description = a cool new app 6 | keywords = web2py, python, framework 7 | generator = Web2py Web Framework 8 | 9 | ; Host configuration 10 | [host] 11 | names = localhost:*, 127.0.0.1:*, *:*, * 12 | 13 | ; db configuration 14 | [db] 15 | uri = sqlite://storage.sqlite 16 | migrate = true 17 | pool_size = 10 ; ignored for sqlite 18 | 19 | ; smtp address and credentials 20 | [smtp] 21 | server = smtp.gmail.com:587 22 | sender = you@gmail.com 23 | login = username:password 24 | tls = true 25 | ssl = true 26 | 27 | ; form styling 28 | [forms] 29 | formstyle = bootstrap3_inline 30 | separator = -------------------------------------------------------------------------------- /progress.log: -------------------------------------------------------------------------------- 1 | [2017-03-13 17:12:35] START 2 | [2017-03-13 17:12:35] EDIT welcome/views/default/index.html: -27 3 | [2017-03-13 17:13:12] EDIT welcome/controllers/default.py: 0 4 | [2017-03-13 17:14:04] EDIT welcome/views/default/index.html: 1 5 | [2017-07-07 16:30:58] EDIT Project0/views/default/solution.html: 0 6 | [2017-07-07 16:32:09] EDIT Project0/views/default/solution.html: 0 7 | [2017-07-07 16:32:52] EDIT Project0/views/default/solution.html: 1 8 | [2017-07-07 16:33:32] EDIT Project0/views/default/solution.html: 0 9 | [2017-07-07 16:34:42] EDIT Project0/views/default/solution.html: 0 10 | [2017-07-07 16:34:46] EDIT Project0/views/default/solution.html: 0 11 | -------------------------------------------------------------------------------- /routes.example.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # ---------------------------------------------------------------------------------------------------------------------- 4 | # This is an app-specific example router 5 | # 6 | # This simple router is used for setting languages from app/languages directory 7 | # as a part of the application path: app//controller/function 8 | # Language from default.py or 'en' (if the file is not found) is used as 9 | # a default_language 10 | # 11 | # See /examples/routes.parametric.example.py for parameter's detail 12 | # ---------------------------------------------------------------------------------------------------------------------- 13 | 14 | # ---------------------------------------------------------------------------------------------------------------------- 15 | # To enable this route file you must do the steps: 16 | # 1. rename /examples/routes.parametric.example.py to routes.py 17 | # 2. rename this APP/routes.example.py to APP/routes.py (where APP - is your application directory) 18 | # 3. restart web2py (or reload routes in web2py admin interface) 19 | # 20 | # YOU CAN COPY THIS FILE TO ANY APPLICATION'S ROOT DIRECTORY WITHOUT CHANGES! 21 | # ---------------------------------------------------------------------------------------------------------------------- 22 | 23 | from fileutils import abspath 24 | from languages import read_possible_languages 25 | 26 | possible_languages = read_possible_languages(abspath('applications', app)) 27 | # ---------------------------------------------------------------------------------------------------------------------- 28 | # NOTE! app - is an application based router's parameter with name of an application. E.g.'welcome' 29 | # ---------------------------------------------------------------------------------------------------------------------- 30 | 31 | routers = { 32 | app: dict( 33 | default_language=possible_languages['default'][0], 34 | languages=[lang for lang in possible_languages if lang != 'default'] 35 | ) 36 | } 37 | 38 | # ---------------------------------------------------------------------------------------------------------------------- 39 | # NOTE! To change language in your application using these rules add this line in one of your models files: 40 | # ---------------------------------------------------------------------------------------------------------------------- 41 | # if request.uri_language: T.force(request.uri_language) 42 | -------------------------------------------------------------------------------- /sessions/05e/025/127.0.0.1-b385bd27-8e47-4103-b74d-49a2ca9be9e8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/sessions/05e/025/127.0.0.1-b385bd27-8e47-4103-b74d-49a2ca9be9e8 -------------------------------------------------------------------------------- /sessions/078/021/127.0.0.1-6eda89e9-2e46-4313-b89c-174fba45f655: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/sessions/078/021/127.0.0.1-6eda89e9-2e46-4313-b89c-174fba45f655 -------------------------------------------------------------------------------- /sessions/0e3/04c/127.0.0.1-1bb5f9af-5953-4913-b5ce-c95646b7d9a1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/sessions/0e3/04c/127.0.0.1-1bb5f9af-5953-4913-b5ce-c95646b7d9a1 -------------------------------------------------------------------------------- /sessions/112/0e7/127.0.0.1-0b0488ee-4af9-4de1-9623-10e8dd0bb962: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/sessions/112/0e7/127.0.0.1-0b0488ee-4af9-4de1-9623-10e8dd0bb962 -------------------------------------------------------------------------------- /sessions/163/1ea/127.0.0.1-f86b1fb9-1e11-435c-9232-b7682319ebab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/sessions/163/1ea/127.0.0.1-f86b1fb9-1e11-435c-9232-b7682319ebab -------------------------------------------------------------------------------- /static/403.html: -------------------------------------------------------------------------------- 1 | 403 2 | -------------------------------------------------------------------------------- /static/404.html: -------------------------------------------------------------------------------- 1 | 404 2 | -------------------------------------------------------------------------------- /static/500.html: -------------------------------------------------------------------------------- 1 | 500 2 | -------------------------------------------------------------------------------- /static/css/calendar.css: -------------------------------------------------------------------------------- 1 | .calendar{z-index:2000;position:relative;display:none;background:#fff;border:2px solid #000;font-size:11px;color:#000;cursor:default;font-family:Arial,Helvetica,sans-serif; 2 | border-radius: 10px; 3 | -moz-border-radius: 10px; 4 | -webkit-border-radius: 10px; 5 | }.calendar table{margin:0px;font-size:11px;color:#000;cursor:default;font-family:tahoma,verdana,sans-serif;}.calendar .button{text-align:center;padding:1px;color:#fff;background:#000;}.calendar .nav{background:#000;color:#fff}.calendar thead .title{font-weight:bold;padding:1px;background:#000;color:#fff;text-align:center;}.calendar thead .name{padding:2px;text-align:center;background:#bbb;}.calendar thead .weekend{color:#f00;}.calendar thead .hilite {background-color:#666;}.calendar thead .active{padding:2px 0 0 2px;background-color:#c4c0b8;}.calendar tbody .day{width:2em;text-align:right;padding:2px 4px 2px 2px;}.calendar tbody .day.othermonth{color:#aaa;}.calendar tbody .day.othermonth.oweekend{color:#faa;}.calendar table .wn{padding:2px 3px 2px 2px;background:#bbb;}.calendar tbody .rowhilite td{background:#ddd;}.calendar tbody td.hilite{background:#bbb;}.calendar tbody td.active{background:#bbb;}.calendar tbody td.selected{font-weight:bold;background:#ddd;}.calendar tbody td.weekend{color:#f00;}.calendar tbody td.today{font-weight:bold;color:#00f;}.calendar tbody .disabled{color:#999;}.calendar tbody .emptycell{visibility:hidden;}.calendar tbody .emptyrow{display:none;}.calendar tfoot .ttip{background:#bbb;padding:1px;background:#000;color:#fff;text-align:center;}.calendar tfoot .hilite{background:#ddd;}.calendar tfoot .active{}.calendar .combo{position:absolute;display:none;width:4em;top:0;left:0;cursor:default;background:#e4e0d8;padding:1px;z-index:2001;}.calendar .combo .label,.calendar .combo .label-IEfix{text-align:center;padding:1px;}.calendar .combo .label-IEfix{width:4em;}.calendar .combo .active{background:#c4c0b8;}.calendar .combo .hilite{background:#048;color:#fea;}.calendar td.time{padding:1px 0;text-align:center;background-color:#bbb;}.calendar td.time .hour,.calendar td.time .minute,.calendar td.time .ampm{padding:0 3px 0 4px;font-weight:bold;}.calendar td.time .ampm{text-align:center;}.calendar td.time .colon{padding:0 2px 0 3px;font-weight:bold;}.calendar td.time span.hilite{}.calendar td.time span.active{border-color:#f00;background-color:#000;color:#0f0;}.hour,.minute{font-size:2em;} 6 | 7 | #CP_hourcont{z-index:2000;padding:0;position:absolute;border:1px dashed #666;background-color:#eee;display:none;}#CP_minutecont{z-index:2000;background-color:#ddd;padding:1px;position:absolute;width:45px;display:none;}.floatleft{float:left;}.CP_hour{z-index:2000;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:35px;}.CP_minute{z-index:2000;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:auto;}.CP_over{background-color:#fff;z-index:2000} 8 | -------------------------------------------------------------------------------- /static/css/layout.css: -------------------------------------------------------------------------------- 1 | body{ 2 | padding-top: 0px; 3 | } 4 | #title{ 5 | text-align: center; 6 | margin-top: 0px; 7 | background: #4473ff; /* For browsers that do not support gradients */ 8 | background: -webkit-linear-gradient(left top, #7a7a7a, #4473ff); /* For Safari 5.1 to 6.0 */ 9 | background: -o-linear-gradient(bottom right, #7a7a7a, #4473ff); /* For Opera 11.1 to 12.0 */ 10 | background: -moz-linear-gradient(bottom right, #7a7a7a, #4473ff); /* For Firefox 3.6 to 15 */ 11 | background: linear-gradient(to bottom right, #7a7a7a, #4473ff); /* Standard syntax */ 12 | } 13 | 14 | .wrapper{ 15 | width: 3px; 16 | margin: 0px; 17 | background: blue; 18 | 19 | } 20 | 21 | .wrapper input { 22 | width: 100%; 23 | } 24 | table{ 25 | border-collapse: separate !important ; /* for solving a bug that is created when bootstrap and google chart css are combined */ 26 | } 27 | 28 | .info{ 29 | text-align: center; 30 | font-family: Helvetica, Verdana, sans-serif; 31 | font-size: 1.15em; 32 | 33 | } 34 | 35 | .start-button{ 36 | margin-left: auto; 37 | margin-right: auto; 38 | } 39 | #head{ 40 | color: #3e3f3a; 41 | } 42 | ul{ 43 | font-family: Helvetica, Verdana, sans-serif; 44 | font-size: 1.15em; 45 | } 46 | .chart-container,.chart-row,#chart_div{ 47 | padding-top: 0px; 48 | margin-top: 0px; 49 | } 50 | .node{ 51 | background: #56CCF2; /* fallback for old browsers */ 52 | background: -webkit-linear-gradient(to right, #2F80ED, #56CCF2); /* Chrome 10-25, Safari 5.1-6 */ 53 | background: linear-gradient(to right, #2F80ED, #56CCF2); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ 54 | box-shadow: 5px 5px 5px #888888; 55 | border-radius: 5px; 56 | } 57 | .best{ 58 | background: -webkit-gradient(linear, left top, left bottom, from(#3ea546), to(#68ff73)); 59 | border: 1px solid #68ff73; 60 | } -------------------------------------------------------------------------------- /static/css/web2py-bootstrap3.css: -------------------------------------------------------------------------------- 1 | div.w2p_flash { 2 | background-image: none; 3 | border-radius: 4px; 4 | -o-border-radius: 4px; 5 | -moz-border-radius: 4px; 6 | -webkit-border-radius: 4px; 7 | color: #333; 8 | font-weight: 400; 9 | min-width: 28px; 10 | max-width: 300px; 11 | opacity: 1; 12 | vertical-align: baseline; 13 | right: auto; 14 | border-width: 1px; 15 | margin: 0 0 20px; 16 | padding: 15px 35px 15px 15px; 17 | } 18 | div.w2p_flash.alert:hover { 19 | opacity: 1; 20 | } 21 | .ie-lte8 div.w2p_flash { 22 | filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#222222', endColorstr='#000000', GradientType=0); 23 | } 24 | .ie-lte8 div.w2p_flash:hover { 25 | filter: alpha(opacity=25); 26 | } 27 | .main-container { 28 | margin-top: 20px; 29 | } 30 | 31 | div.error { 32 | width: auto; 33 | background: transparent; 34 | border: none; 35 | background-image: none; 36 | color: red; 37 | display: inline-block; 38 | padding: 5px; 39 | } 40 | div.w2p_flash.alert { 41 | display: none; 42 | position: fixed; 43 | top: 70px; 44 | right: 75px; 45 | cursor: pointer; 46 | z-index: 1000; 47 | background-color: #f9edbe; 48 | border-color: #f0c36d; 49 | } 50 | .w2p-toolbar-hidden { 51 | margin: 10px; 52 | } 53 | ul.w2p_list { 54 | margin-left: 0; 55 | padding-left: 0; 56 | } 57 | .w2p_list li { 58 | margin-bottom: 6px; 59 | } 60 | .w2p_list li input { 61 | display: inline-block; 62 | width: 85%; 63 | margin-right: 4px; 64 | } 65 | .w2p_list li a { 66 | margin-bottom: 2px; 67 | } 68 | div[id^=_autocomplete_] { 69 | margin-top: -10px; 70 | z-index: 1; 71 | } 72 | select.autocomplete { 73 | display: block; 74 | font-size: 14px; 75 | line-height: 1.428571429; 76 | color: #555; 77 | vertical-align: middle; 78 | background-color: #fff; 79 | background-image: none; 80 | border: 1px solid #ccc; 81 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 82 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 83 | -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; 84 | transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; 85 | border-color: #428bca; 86 | padding: 6px 12px; 87 | } 88 | #web2py-logo { 89 | color: #c6cecc; 90 | } 91 | #web2py-logo b { 92 | display: inline-block; 93 | margin-top: -1px; 94 | } 95 | #web2py-logo b>span { 96 | font-size: 22px; 97 | color: #FFF; 98 | } 99 | #web2py-logo:hover { 100 | color: #FFF; 101 | } 102 | .footer > .container-fluid { 103 | padding-left: 15px; 104 | padding-right: 15px; 105 | margin: 20px; 106 | } 107 | .background { 108 | background: url(../images/background.jpg) no-repeat center center; 109 | } 110 | body { 111 | padding-top: 60px; 112 | margin-bottom: 60px; 113 | } 114 | header { 115 | -webkit-box-shadow: 0 0 8px 2px #000; 116 | -moz-box-shadow: 0 0 8px 2px #000; 117 | box-shadow: 0 0 8px 2px #000; 118 | margin-bottom: 10px; 119 | } 120 | html { 121 | position: relative; 122 | min-height: 100%; 123 | } 124 | .footer { 125 | position: absolute; 126 | bottom: 0; 127 | width: 100%; 128 | height: 60px; 129 | background: #333; 130 | color: #aaa; 131 | } 132 | header h1 { 133 | color: #FFF!important; 134 | text-shadow: 0 0 7px #000; 135 | } 136 | header .jumbotron { 137 | background-color: transparent; 138 | } 139 | .w2p_flash { 140 | opacity: 0.9!important; 141 | right: 100px; 142 | } 143 | .right { 144 | float: right; 145 | text-align: right; 146 | } 147 | .left { 148 | float: left; 149 | text-align: left; 150 | } 151 | .center { 152 | width: 100%; 153 | text-align: center; 154 | vertical-align: middle; 155 | } 156 | td.w2p_fw { 157 | padding-bottom: 1px; 158 | } 159 | td.w2p_fl { 160 | text-align: left; 161 | } 162 | td.w2p_fl, 163 | td.w2p_fw { 164 | padding-right: 7px; 165 | } 166 | td.w2p_fl, 167 | td.w2p_fc { 168 | padding-top: 4px; 169 | } 170 | div.w2p_export_menu { 171 | margin: 5px 0; 172 | } 173 | div.w2p_export_menu a, 174 | div.w2p_wiki_tags a, 175 | div.w2p_cloud a { 176 | margin-left: 5px; 177 | padding: 2px 5px; 178 | } 179 | #submit_record__row td { 180 | padding-top: .5em; 181 | } 182 | div.error_wrapper { 183 | display: block; 184 | } 185 | .copyright { 186 | float: left; 187 | } 188 | #poweredBy { 189 | float: right; 190 | } 191 | .web2py_grid tbody td { 192 | vertical-align: middle; 193 | padding: 2px 5px; 194 | } 195 | .web2py_grid thead th, 196 | .web2py_grid tfoot td { 197 | background-color: #EAEAEA; 198 | padding: 10px 5px; 199 | } 200 | .web2py_grid tr.odd { 201 | background-color: #F9F9F9; 202 | } 203 | .web2py_grid tr:hover { 204 | background-color: #F5F5F5; 205 | } 206 | .web2py_console form { 207 | width: 100%; 208 | display: inline; 209 | vertical-align: middle; 210 | margin: 0 0 0 5px; 211 | } 212 | .web2py_console form select { 213 | margin: 0; 214 | } 215 | .web2py_search_actions { 216 | float: left; 217 | text-align: left; 218 | width: 100%; 219 | } 220 | .web2py_grid .row_buttons { 221 | min-height: 25px; 222 | vertical-align: middle; 223 | } 224 | .web2py_grid .row_buttons a { 225 | margin: 3px; 226 | } 227 | .web2py_grid .row_buttons a, 228 | .web2py_paginator ul li a, 229 | .web2py_search_actions a, 230 | .web2py_console input[type=submit], 231 | .web2py_console input[type=button], 232 | .web2py_console button { 233 | line-height: 20px; 234 | margin-right: 2px; 235 | display: inline-block; 236 | padding: 6px 12px; 237 | } 238 | .web2py_counter { 239 | margin-top: 5px; 240 | margin-right: 2px; 241 | width: 35%; 242 | float: right; 243 | text-align: right; 244 | } 245 | .web2py_table { 246 | clear: both; 247 | display: block; 248 | } 249 | .web2py_paginator { 250 | text-align: right; 251 | background-color: #f2f2f2; 252 | padding: 5px; 253 | } 254 | .web2py_paginator ul { 255 | list-style-type: none; 256 | margin: 0; 257 | padding: 0; 258 | } 259 | .web2py_paginator .current { 260 | font-weight: 700; 261 | } 262 | .web2py_breadcrumbs ul { 263 | list-style: none; 264 | margin-bottom: 18px; 265 | } 266 | li.w2p_grid_breadcrumb_elem { 267 | display: inline-block; 268 | } 269 | .web2py_console input, 270 | .web2py_console select, 271 | .web2py_console a { 272 | margin: 2px; 273 | padding: 6px 12px; 274 | } 275 | #wiki_page_body { 276 | width: 600px; 277 | height: auto; 278 | min-height: 400px; 279 | } 280 | .ie-lte7 .topbar .container { 281 | z-index: 2; 282 | } 283 | .ie9 #w2p_query_panel { 284 | padding-bottom: 2px; 285 | } 286 | .web2py_console .form-control { 287 | width: 20%; 288 | display: inline; 289 | height: 32px; 290 | } 291 | .web2py_console #w2p_keywords { 292 | width: 50%; 293 | } 294 | .web2py_search_actions a, 295 | .web2py_console input[type=submit], 296 | .web2py_console input[type=button], 297 | .web2py_console button { 298 | padding: 6px 12px; 299 | } 300 | td.w2p_fl, 301 | td.w2p_fw, 302 | td.w2p_fc, 303 | #web2py_user_form td, 304 | .web2py_grid .web2py_form td { 305 | vertical-align: top; 306 | } 307 | #auth_user_remember__row label, 308 | .web2py_paginator ul li { 309 | display: inline; 310 | } 311 | .web2py_grid, 312 | .web2py_grid table { 313 | width: 100%; 314 | } 315 | input[type=checkbox], input[type=radio] { 316 | margin: 4px 4px 0 0; 317 | } 318 | -------------------------------------------------------------------------------- /static/css/web2py.css: -------------------------------------------------------------------------------- 1 | /** these MUST stay **/ 2 | a {text-decoration:none; white-space:nowrap} 3 | a:hover {text-decoration:underline} 4 | a.button {text-decoration:none} 5 | h1,h2,h3,h4,h5,h6 {margin:0.5em 0 0.25em 0; display:block; 6 | font-family:Helvetica} 7 | h1 {font-size:4.00em} 8 | h2 {font-size:3.00em} 9 | h3 {font-size:2.00em} 10 | h4 {font-size:1.50em} 11 | h5 {font-size:1.25em} 12 | h6 {font-size:1.12em} 13 | th,label {font-weight:bold; white-space:nowrap;} 14 | td,th {text-align:left; padding:2px 5px 2px 5px} 15 | th {vertical-align:middle; border-right:1px solid white} 16 | td {vertical-align:top} 17 | form table tr td label {text-align:left} 18 | p,table,ol,ul {padding:0; margin: 0.75em 0} 19 | p {text-align:justify} 20 | ol, ul {list-style-position:outside; margin-left:2em} 21 | li {margin-bottom:0.5em} 22 | span,input,select,textarea,button,label,a {display:inline} 23 | img {border:0} 24 | blockquote,blockquote p,p blockquote { 25 | font-style:italic; margin:0.5em 30px 0.5em 30px; font-size:0.9em} 26 | i,em {font-style:italic} 27 | strong {font-weight:bold} 28 | small {font-size:0.8em} 29 | code {font-family:Courier} 30 | textarea {width:100%} 31 | video {width:400px} 32 | audio {width:200px} 33 | [type="text"], [type="password"], select { 34 | margin-right: 5px; width: 300px; 35 | } 36 | .w2p_hidden {display:none;visibility:visible} 37 | .right {float:right; text-align:right} 38 | .left {float:left; text-align:left} 39 | .center {width:100%; text-align:center; vertical-align:middle} 40 | /** end **/ 41 | 42 | /* Sticky footer begin */ 43 | 44 | .main { 45 | padding:20px 0 50px 0; 46 | } 47 | 48 | .footer,.push { 49 | height:6em; 50 | padding:1em 0; 51 | clear:both; 52 | } 53 | 54 | .footer-content {position:relative; bottom:-4em; width:100%} 55 | 56 | .auth_navbar { 57 | white-space:nowrap; 58 | } 59 | 60 | /* Sticky footer end */ 61 | 62 | .footer { 63 | border-top:1px #DEDEDE solid; 64 | } 65 | .header { 66 | /* background:; */ 67 | } 68 | 69 | 70 | fieldset {padding:16px; border-top:1px #DEDEDE solid} 71 | fieldset legend {text-transform:uppercase; font-weight:bold; padding:4px 16px 4px 16px; background:#f1f1f1} 72 | 73 | /* fix ie problem with menu */ 74 | 75 | td.w2p_fw {padding-bottom:1px} 76 | td.w2p_fl,td.w2p_fw,td.w2p_fc {vertical-align:top} 77 | td.w2p_fl {text-align:left} 78 | td.w2p_fl, td.w2p_fw {padding-right:7px} 79 | td.w2p_fl,td.w2p_fc {padding-top:4px} 80 | div.w2p_export_menu {margin:5px 0} 81 | div.w2p_export_menu a, div.w2p_wiki_tags a, div.w2p_cloud a {margin-left:5px; padding:2px 5px; background-color:#f1f1f1; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px;} 82 | 83 | /* tr#submit_record__row {border-top:1px solid #E5E5E5} */ 84 | #submit_record__row td {padding-top:.5em} 85 | 86 | /* Fix */ 87 | #auth_user_remember__row label {display:inline} 88 | #web2py_user_form td {vertical-align:top} 89 | 90 | /*********** web2py specific ***********/ 91 | div.w2p_flash { 92 | font-weight:bold; 93 | display:none; 94 | position:fixed; 95 | padding:10px; 96 | top:48px; 97 | right:250px; 98 | min-width:280px; 99 | opacity:0.95; 100 | margin:0px 0px 10px 10px; 101 | vertical-align:middle; 102 | cursor:pointer; 103 | color:#fff; 104 | background-color:#000; 105 | border:2px solid #fff; 106 | border-radius:8px; 107 | -o-border-radius: 8px; 108 | -moz-border-radius:8px; 109 | -webkit-border-radius:8px; 110 | background-image: -webkit-linear-gradient(top,#222,#000); 111 | background-image: -o-linear-gradient(top,#222,#000); 112 | background-image: -moz-linear-gradient(90deg, #222, #000); 113 | background-image: linear-gradient(top,#222,#000); 114 | background-repeat: repeat-x; 115 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 116 | -webkit-font-smoothing: antialiased; 117 | z-index:2000; 118 | } 119 | 120 | div.w2p_flash #closeflash{color:inherit; float:right; margin-left:15px;} 121 | .ie-lte7 div.flash #closeflash 122 | {color:expression(this.parentNode.currentStyle['color']);float:none;position:absolute;right:4px;} 123 | 124 | div.w2p_flash:hover { opacity:0.25; } 125 | 126 | div.error_wrapper {display:block} 127 | div.error { 128 | color:red; 129 | padding:5px; 130 | display:inline-block; 131 | } 132 | 133 | .topbar { 134 | padding:10px 0; 135 | width:100%; 136 | color:#959595; 137 | vertical-align:middle; 138 | padding:auto; 139 | background-image:-khtml-gradient(linear,left top,left bottom,from(#333333),to(#222222)); 140 | background-image:-moz-linear-gradient(top,#333333,#222222); 141 | background-image:-ms-linear-gradient(top,#333333,#222222); 142 | background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#333333),color-stop(100%,#222222)); 143 | background-image:-webkit-linear-gradient(top,#333333,#222222); 144 | background-image:-o-linear-gradient(top,#333333,#222222); 145 | background-image:linear-gradient(top,#333333,#222222); 146 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0); 147 | -webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1); 148 | -moz-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1); 149 | box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1); 150 | } 151 | 152 | .topbar a { 153 | color:#e1e1e1; 154 | } 155 | 156 | #navbar {float:right; padding:5px; /* same as superfish */} 157 | 158 | .statusbar { 159 | background-color:#F5F5F5; 160 | margin-top:1em; 161 | margin-bottom:1em; 162 | padding:.5em 1em; 163 | border:1px solid #ddd; 164 | border-radius:5px; 165 | -moz-border-radius:5px; 166 | -webkit-border-radius:5px; 167 | } 168 | 169 | .breadcrumbs {float:left} 170 | 171 | .copyright {float:left} 172 | #poweredBy {float:right} 173 | 174 | /* #MEDIA QUERIES SECTION */ 175 | 176 | /* 177 | *Grid 178 | * 179 | * The default style for SQLFORM.grid even using jquery-iu or another ui framework 180 | * will look better with the declarations below 181 | * if needed to remove base.css consider keeping these following lines in some css file. 182 | */ 183 | /* .web2py_table {border:1px solid #ccc} */ 184 | .web2py_paginator {} 185 | .web2py_grid {width:100%} 186 | .web2py_grid table {width:100%} 187 | .web2py_grid tbody td {padding:2px 5px 2px 5px; vertical-align: middle;} 188 | .web2py_grid .web2py_form td {vertical-align: top;} 189 | 190 | .web2py_grid thead th,.web2py_grid tfoot td { 191 | background-color:#EAEAEA; 192 | padding:10px 5px 10px 5px; 193 | } 194 | 195 | .web2py_grid tr.odd {background-color:#F9F9F9} 196 | .web2py_grid tr:hover {background-color:#F5F5F5} 197 | 198 | /* 199 | .web2py_breadcrumbs a { 200 | line-height:20px; margin-right:5px; display:inline-block; 201 | padding:3px 5px 3px 5px; 202 | font-family:'lucida grande',tahoma,verdana,arial,sans-serif; 203 | color:#3C3C3D; 204 | text-shadow:1px 1px 0 #FFFFFF; 205 | white-space:nowrap; overflow:visible; cursor:pointer; 206 | background:#ECECEC; 207 | border:1px solid #CACACA; 208 | -webkit-border-radius:2px; -moz-border-radius:2px; 209 | -webkit-background-clip:padding-box; border-radius:2px; 210 | outline:none; position:relative; zoom:1; *display:inline; 211 | } 212 | */ 213 | 214 | .web2py_console form { 215 | width: 100%; 216 | display: inline; 217 | vertical-align: middle; 218 | margin: 0 0 0 5px; 219 | } 220 | 221 | .web2py_console form select { 222 | margin:0; 223 | } 224 | 225 | .web2py_search_actions { 226 | float:left; 227 | text-align:left; 228 | } 229 | 230 | .web2py_grid .row_buttons { 231 | min-height:25px; 232 | vertical-align:middle; 233 | } 234 | .web2py_grid .row_buttons a { 235 | margin:3px; 236 | } 237 | 238 | .web2py_search_actions { 239 | width:100%; 240 | } 241 | 242 | .web2py_grid .row_buttons a, 243 | .web2py_paginator ul li a, 244 | .web2py_search_actions a, 245 | .web2py_console input[type=submit], 246 | .web2py_console input[type=button], 247 | .web2py_console button { 248 | line-height:20px; 249 | margin-right:2px; display:inline-block; 250 | padding:3px 5px 3px 5px; 251 | } 252 | 253 | .web2py_counter { 254 | margin-top:5px; 255 | margin-right:2px; 256 | width:35%; 257 | float:right; 258 | text-align:right; 259 | } 260 | 261 | /*Fix firefox problem*/ 262 | .web2py_table {clear:both; display:block} 263 | 264 | .web2py_paginator { 265 | padding:5px; 266 | text-align:right; 267 | background-color:#f2f2f2; 268 | 269 | } 270 | .web2py_paginator ul { 271 | list-style-type:none; 272 | margin:0px; 273 | padding:0px; 274 | } 275 | 276 | .web2py_paginator ul li { 277 | display:inline; 278 | } 279 | 280 | .web2py_paginator .current { 281 | font-weight:bold; 282 | } 283 | 284 | .web2py_breadcrumbs ul { 285 | list-style:none; 286 | margin-bottom:18px; 287 | } 288 | 289 | li.w2p_grid_breadcrumb_elem { 290 | display:inline-block; 291 | } 292 | 293 | .web2py_console form { vertical-align: middle; } 294 | .web2py_console input, .web2py_console select, 295 | .web2py_console a { margin: 2px; } 296 | 297 | 298 | #wiki_page_body { 299 | width: 600px; 300 | height: auto; 301 | min-height: 400px; 302 | } 303 | 304 | /* fix some IE problems */ 305 | 306 | .ie-lte7 .topbar .container {z-index:2} 307 | .ie-lte8 div.w2p_flash{ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#222222', endColorstr='#000000', GradientType=0 ); } 308 | .ie-lte8 div.w2p_flash:hover {filter:alpha(opacity=25);} 309 | .ie9 #w2p_query_panel {padding-bottom:2px} 310 | 311 | .web2py_console .form-control {width: 20%; display: inline;} 312 | .web2py_console #w2p_keywords {width: 50%;} 313 | .web2py_search_actions a, .web2py_console input[type=submit], .web2py_console input[type=button], .web2py_console button { padding: 6px 12px; } 314 | -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /static/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/images/background.jpg -------------------------------------------------------------------------------- /static/images/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/images/facebook.png -------------------------------------------------------------------------------- /static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/images/favicon.ico -------------------------------------------------------------------------------- /static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/images/favicon.png -------------------------------------------------------------------------------- /static/images/gplus-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/images/gplus-32.png -------------------------------------------------------------------------------- /static/images/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amanolar94/Branch-Bound-Algorithm/7a01c891f8ebaf7d2e8d15a15b058e435b915315/static/images/twitter.png -------------------------------------------------------------------------------- /static/js/respond-1.4.2.min.js: -------------------------------------------------------------------------------- 1 | /*! Respond.js v1.4.2: min/max-width media query polyfill 2 | * Copyright 2014 Scott Jehl 3 | * Licensed under MIT 4 | * http://j.mp/respondjs */ 5 | 6 | !function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,"").match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName("head")[0]||l,s=k.getElementsByTagName("base")[0],t=r.getElementsByTagName("link"),u=function(){var a,b=k.createElement("div"),c=k.body,d=l.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=k.createElement("body"),c.style.background="none"),l.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&&(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c="clientWidth",d=l[c],e="CSS1Compat"===k.compatMode&&d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&&h&&q>p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?j||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?j||u():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&&o[C]&&o[C].parentNode===r&&r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,"").replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},i=!f&&d;b.length&&(b+="/"),i&&(f=1);for(var j=0;f>j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&&RegExp.$1,n.push(RegExp.$2&&h(RegExp.$2))),o=k.split(","),p=o.length;for(var q=0;p>q;q++)l=o[q],g(l)||m.push({media:l.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:n.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;b 4 | (MIT license) 5 | 6 | Example: 7 | 8 | 9 | 10 | **/ 11 | 12 | jQuery(function(){ 13 | var script_source = jQuery('script[src*="share.js"]').attr('src'); 14 | var params = function(name,default_value) { 15 | var match = RegExp('[?&]' + name + '=([^&]*)').exec(script_source); 16 | return match && decodeURIComponent(match[1].replace(/\+/g, ' '))||default_value; 17 | } 18 | var path = params('static','social'); 19 | var url = encodeURIComponent(window.location.href); 20 | var host = window.location.hostname; 21 | var title = escape(jQuery('title').text()); 22 | var twit = 'http://twitter.com/home?status='+title+'%20'+url; 23 | var facebook = 'http://www.facebook.com/sharer.php?u='+url; 24 | var gplus = 'https://plus.google.com/share?url='+url; 25 | var tbar = '
Share
Share on TwitterShare on facebookShare on Google Plus
'; 26 | // Add the share tool bar. 27 | jQuery('body').append(tbar); 28 | var st = jQuery('#socialdrawer'); 29 | st.css({'opacity':'.7','z-index':'3000','background':'#FFF','border':'solid 1px #666','border-width':' 1px 0 0 1px','height':'20px','width':'40px','position':'fixed','bottom':'0','right':'0','padding':'2px 5px','overflow':'hidden','-webkit-border-top-left-radius':' 12px','-moz-border-radius-topleft':' 12px','border-top-left-radius':' 12px','-moz-box-shadow':' -3px -3px 3px rgba(0,0,0,0.5)','-webkit-box-shadow':' -3px -3px 3px rgba(0,0,0,0.5)','box-shadow':' -3px -3px 3px rgba(0,0,0,0.5)'}); 30 | jQuery('#socialdrawer a').css({'float':'left','width':'32px','margin':'3px 2px 2px 2px','padding':'0','cursor':'pointer'}); 31 | jQuery('#socialdrawer span').css({'float':'left','margin':'2px 3px','text-shadow':' 1px 1px 1px #FFF','color':'#444','font-size':'12px','line-height':'1em'}); 32 | jQuery('#socialdrawer img').hide(); 33 | // hover 34 | st.click(function(){ 35 | jQuery(this).animate({height:'40px', width:'160px', opacity: 0.95}, 300); 36 | jQuery('#socialdrawer img').show(); 37 | }); 38 | //leave 39 | st.mouseleave(function(){ 40 | st.animate({height:'20px', width: '40px', opacity: .7}, 300); 41 | jQuery('#socialdrawer img').hide(); 42 | return false; 43 | } ); 44 | }); 45 | -------------------------------------------------------------------------------- /static/js/web2py-bootstrap3.js: -------------------------------------------------------------------------------- 1 | (function($, undefined) { 2 | $.web2py.ajax_fields = function(target) { 3 | /* 4 | *this attaches something to a newly loaded fragment/page 5 | * Ideally all events should be bound to the document, so we can avoid calling 6 | * this over and over... all will be bound to the document 7 | */ 8 | /*adds btn class to buttons*/ 9 | $('button:not([class^="btn"])', target).addClass('btn btn-default'); 10 | $("p.w2p-autocomplete-widget input").addClass('form-control'); 11 | $('form input[type="submit"]:not([class^="btn"]), form input[type="button"]:not([class^="btn"])', target).addClass('btn btn-default'); 12 | /* javascript for PasswordWidget*/ 13 | $('input[type=password][data-w2p_entropy]', target).each(function() { 14 | web2py.validate_entropy($(this)); 15 | }); 16 | /* javascript for ListWidget*/ 17 | $('ul.w2p_list', target).each(function() { 18 | function pe(ul, e) { 19 | var new_line = ml(ul); 20 | rel(ul); 21 | if ($(e.target).closest('li').is(':visible')) { 22 | /* make sure we didn't delete the element before we insert after */ 23 | new_line.insertAfter($(e.target).closest('li')); 24 | } else { 25 | /* the line we clicked on was deleted, just add to end of list */ 26 | new_line.appendTo(ul); 27 | } 28 | new_line.find(":text").focus(); 29 | return false; 30 | } 31 | 32 | function rl(ul, e) { 33 | if ($(ul).find('li').length > 1) { 34 | /* only remove if we have more than 1 item so the list is never empty */ 35 | $(e.target).closest('li').remove(); 36 | } 37 | } 38 | 39 | function ml(ul) { 40 | /* clone the first field */ 41 | var line = $(ul).find("li:first").clone(true); 42 | line.find(':text').val(''); 43 | return line; 44 | } 45 | 46 | function rel(ul) { 47 | /* keep only as many as needed*/ 48 | $(ul).find("li").each(function() { 49 | var trimmed = $.trim($(this).find(":text").val()); 50 | if (trimmed == '') $(this).remove(); 51 | else $(this).find(":text").val(trimmed); 52 | }); 53 | } 54 | var ul = this; 55 | $(ul).find(":text").addClass('form-control').wrap("
").after('
').keypress(function(e) { 56 | return (e.which == 13) ? pe(ul, e) : true; 57 | }).next().click(function(e) { 58 | pe(ul, e); 59 | e.preventDefault(); 60 | }).next().click(function(e) { 61 | rl(ul, e); 62 | e.preventDefault(); 63 | }); 64 | }); 65 | } 66 | 67 | $(function() { 68 | $(".nav ul.dropdown-menu").each(function() { 69 | var toggle = jQuery(this).parent(); 70 | if (toggle.parent().hasClass("nav")) { 71 | toggle.attr("data-w2pmenulevel", "l0"); 72 | toggle.children("a") 73 | .addClass("dropdown-toggle") 74 | .append(' ') 75 | .attr("data-toggle", "dropdown"); 76 | } else { 77 | toggle.addClass("dropdown-submenu").removeClass("dropdown"); 78 | }; 79 | }); 80 | }); 81 | 82 | })(jQuery); -------------------------------------------------------------------------------- /views/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /views/default/create_problem.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 |
3 |
4 | 5 |
6 |
7 |
8 |

{{=T('Define problem')}}

9 |
10 | {{=form.custom.begin}} 11 |
12 | {{=form.custom.label['probtype']}} 13 | {{=form.custom.widget['probtype']}} 14 |


15 |
16 | Z= 17 | {{for i in range(1, vars):}} 18 | {{=form.custom.widget['x_{var}'.format(var=i)]}} 19 | {{=form.custom.label['x_{var}'.format(var=i)]}} 20 | {{pass}} 21 |


22 | 23 | {{for i in range(1, cos):}} 24 |
25 | C_{{=i}}= 26 | {{for j in range(1,vars):}} 27 | {{=form.custom.widget['c_{co}x_{var}'.format(co=i,var=j)]}} 28 | {{=form.custom.label['c_{co}x_{var}'.format(co=i,var=j)]}} 29 | 30 | {{pass}} 31 | {{=form.custom.widget['cotype_{co}'.format(co=i)]}} 32 | {{=form.custom.widget['b_{co}'.format(co=i)]}}

33 |

34 | {{pass}} 35 | 36 | 37 | 38 |

{{=form.custom.submit}} 39 | {{=form.custom.end}} 40 | 41 |
42 | 43 |
-------------------------------------------------------------------------------- /views/default/index.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 |
3 |
4 |
5 |

The Branch & Bound algorithm is an algorithm for solving discrete optimization problems. This algorithm is implemented with Python using also the libraries Pulp (which is used for linear programming problems) and Treelib (which implements tree data stractures in python) and it can solve problems for educational purposes.
The code can be found on github

6 |
7 |
8 |

9 | 10 |
11 |
12 |
13 |
14 | 15 |
16 |
17 |
18 |

19 | 20 |
21 |
22 |
23 |

The process is very simple and you just have to follow the screens. 24 |

    25 |
  • In the first screen you define the number of the variables and the number of the constraints
  • 26 |
  • In the second sceen you define the problem type (min/max), the problem objective function and the constraints.
  • 27 |
  • In the last screen you get the tree with the path that we followed to find the solution
  • 28 |
29 |

30 |
31 |
32 |
-------------------------------------------------------------------------------- /views/default/params.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 |
3 |
4 |
5 |
6 | {{=form}} 7 |
8 |
9 |
10 | 11 |
-------------------------------------------------------------------------------- /views/default/solution.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 |
3 |
4 | 5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 13 | 14 | 55 | -------------------------------------------------------------------------------- /views/default/solution.html.bak: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 |
3 |
4 | 5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 13 | 14 | 59 | -------------------------------------------------------------------------------- /views/generic.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{""" 3 | 4 | You should not modify this file. 5 | It is used as default when a view is not provided for your controllers 6 | 7 | """}} 8 |

{{=' '.join(x.capitalize() for x in request.function.split('_'))}}

9 | {{if len(response._vars)==1:}} 10 | {{=BEAUTIFY(response._vars.values()[0])}} 11 | {{elif len(response._vars)>1:}} 12 | {{=BEAUTIFY(response._vars)}} 13 | {{pass}} 14 | {{if request.is_local:}} 15 | {{=response.toolbar()}} 16 | {{pass}} 17 | -------------------------------------------------------------------------------- /views/generic.ics: -------------------------------------------------------------------------------- 1 | {{ 2 | ### 3 | # response._vars contains the dictionary returned by the controller action 4 | # Assuming something like: 5 | # 6 | # db.define_table('event', 7 | # Field('title'), 8 | # Field('start_datetime','datetime'), 9 | # Field('stop_datetime','datetime')) 10 | # events = db(db.event).select() 11 | # 12 | # Aor this to work the action must return something like 13 | # 14 | # dict(events=events, title='title',link=URL('action'),timeshift=0) 15 | # 16 | ### 17 | from gluon.serializers import ics}}{{=XML(ics(**response._vars))}} 18 | -------------------------------------------------------------------------------- /views/generic.json: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import json}}{{=XML(json(response._vars))}} 2 | -------------------------------------------------------------------------------- /views/generic.jsonp: -------------------------------------------------------------------------------- 1 | {{ 2 | ### 3 | # response._vars contains the dictionary returned by the controller action 4 | ### 5 | 6 | # security check! This file is an example for a jsonp view. 7 | # it is not safe to use as a generic.jsonp because of security implications. 8 | 9 | if response.view == 'generic.jsonp': 10 | raise HTTP(501,'generic.jsonp diasbled for security reasons') 11 | 12 | try: 13 | from gluon.serializers import json 14 | result = "%s(%s)" % (request.vars['callback'], json(response._vars)) 15 | response.write(result, escape=False) 16 | response.headers['Content-Type'] = 'application/jsonp' 17 | except (TypeError, ValueError): 18 | raise HTTP(405, 'JSON serialization error') 19 | except ImportError: 20 | raise HTTP(405, 'JSON not available') 21 | except: 22 | raise HTTP(405, 'JSON error') 23 | }} -------------------------------------------------------------------------------- /views/generic.load: -------------------------------------------------------------------------------- 1 | {{''' 2 | # License: Public Domain 3 | # Author: Iceberg at 21cn dot com 4 | 5 | With this generic.load file, you can use same function to serve two purposes. 6 | 7 | = regular action 8 | - ajax callback (when called with .load) 9 | 10 | Example modified from http://www.web2py.com/AlterEgo/default/show/252: 11 | 12 | def index(): 13 | return dict( 14 | part1='hello world', 15 | part2=LOAD(url=URL(r=request,f='auxiliary.load'),ajax=True)) 16 | 17 | def auxiliary(): 18 | form=SQLFORM.factory(Field('name')) 19 | if form.accepts(request.vars): 20 | response.flash = 'ok' 21 | return dict(message="Hello %s" % form.vars.name) 22 | return dict(form=form) 23 | 24 | Notice: 25 | 26 | - no need to set response.headers['web2py-response-flash'] 27 | - no need to return a string 28 | even if the function is called via ajax. 29 | 30 | '''}}{{if len(response._vars)==1:}}{{=response._vars.values()[0]}}{{else:}}{{=BEAUTIFY(response._vars)}}{{pass}} -------------------------------------------------------------------------------- /views/generic.map: -------------------------------------------------------------------------------- 1 | {{""" 2 | this is an example of usage of google map 3 | the web2py action should be something like: 4 | 5 | def map(): 6 | return dict( 7 | googlemap_key='...', 8 | center_latitude = 41.878, 9 | center_longitude = -87.629, 10 | scale = 7, 11 | maker = lambda point: A(row.id,_href='...') 12 | points = db(db.point).select() where a points have latitute and longitude 13 | ) 14 | 15 | the corresponding views/defaut/map.html should be something like: 16 | 17 | \{\{extend 'layout.html'\}\} 18 |
\{\{include 'generic.map'\}\}
19 | 20 | """}} 21 | 22 | 68 |
69 | 70 | -------------------------------------------------------------------------------- /views/generic.pdf: -------------------------------------------------------------------------------- 1 | {{ 2 | import os 3 | from gluon.contrib.generics import pdf_from_html 4 | filename = '%s/%s.html' % (request.controller,request.function) 5 | if os.path.exists(os.path.join(request.folder,'views',filename)): 6 | html=response.render(filename) 7 | else: 8 | html=BODY(BEAUTIFY(response._vars)).xml() 9 | pass 10 | =pdf_from_html(html) 11 | }} 12 | -------------------------------------------------------------------------------- /views/generic.rss: -------------------------------------------------------------------------------- 1 | {{ 2 | ### 3 | # response._vars contains the dictionary returned by the controller action 4 | # for this to work the action must return something like 5 | # 6 | # dict(title=...,link=...,description=...,created_on='...',items=...) 7 | # 8 | # items is a list of dictionaries each with title, link, description, pub_date. 9 | ### 10 | from gluon.serializers import rss}}{{=XML(rss(response._vars))}} 11 | -------------------------------------------------------------------------------- /views/generic.xml: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import xml}}{{=XML(xml(response._vars,quote=False))}} 2 | -------------------------------------------------------------------------------- /views/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 15 | 16 | {{=response.title or request.application}} 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 | 35 | 36 | {{include 'web2py_ajax.html'}} 37 | {{block head}}{{end}} 38 | {{ 39 | # using sidebars need to know what sidebar you want to use 40 | mc0 = 'col-md-12' 41 | mc1 = 'col-md-9' 42 | mc2 = 'col-md-6' 43 | left_sidebar_enabled = globals().get('left_sidebar_enabled', False) 44 | right_sidebar_enabled = globals().get('right_sidebar_enabled', False) 45 | middle_column = {0: mc0, 1: mc1, 2: mc2}[ 46 | (left_sidebar_enabled and 1 or 0)+(right_sidebar_enabled and 1 or 0)] 47 | }} 48 | 49 | 50 | 51 |
{{=response.flash or ''}}
52 | 53 | 54 | 55 | {{block header}} 56 | 65 | {{end}} 66 | 67 | 68 | {{include}} 69 | 70 | 71 | 72 | 73 | 74 | {{block page_js}}{{end page_js}} 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /views/web2py_ajax.html: -------------------------------------------------------------------------------- 1 | 9 | {{ 10 | response.files.insert(0,URL('static','js/jquery.js')) 11 | response.files.insert(1,URL('static','css/calendar.css')) 12 | response.files.insert(2,URL('static','js/calendar.js')) 13 | response.files.insert(3,URL('static','js/web2py.js')) 14 | response.include_meta() 15 | response.include_files() 16 | }} 17 | --------------------------------------------------------------------------------