more language patches, thanks Vladyslav

This commit is contained in:
mdipierro
2012-07-31 22:02:51 -05:00
parent eb0910129d
commit e4cd9ceeb6
10 changed files with 241 additions and 234 deletions

View File

@@ -1 +1 @@
Version 2.00.0 (2012-07-31 19:25:48) dev
Version 2.00.0 (2012-07-31 22:02:48) dev

View File

@@ -65,6 +65,7 @@
'cache': 'кеш',
'Cache Keys': 'Ключі кешу',
'cache, errors and sessions cleaned': 'кеш, список зареєстрованих помилок та сесії очищенні',
'can be a git repo': 'може бути git-репозитарієм',
'Cancel': 'Відмінити',
'Cannot be empty': 'Не може бути порожнім',
'Cannot compile: there are errors in your app:': 'Не вдається скомпілювати: є помилки у вашому додатку:',
@@ -85,6 +86,7 @@
'Code listing': 'Лістинг',
'collapse/expand all': 'згорнути/розгорнути все',
'Command': 'Команда',
'Commit': 'Комміт',
'Compile': 'Компілювати',
'compiled application removed': 'скомпільований додаток вилучено',
'Condition': 'Умова',
@@ -187,6 +189,8 @@
'GAE Password': 'Пароль GAE',
'Generate': 'Генерувати',
'Get from URL:': 'Отримати з URL:',
'Git Pull': 'Git Pull',
'Git Push': 'Git Push',
'Globals##debug': 'Глобальні змінні',
'Go to Matching Pair': 'Перейти до відповідної пари',
'go!': 'почали!',
@@ -200,7 +204,7 @@
'honored only if the expression evaluates to true': 'точка зупинки активується тільки за істинності умови',
'If start the downgrade, be patient, it may take a while to rollback': 'Запустивши повернення на попередню версію, будьте терплячими, це може зайняти трохи часу',
'If start the upgrade, be patient, it may take a while to download': 'Запустивши оновлення, будьте терплячими, потрібен час для завантаження необхідних даних',
'If the report above contains a ticket number it indicates a failure in executing the controller, before any attempt to execute the doctests. This is usually due to an indentation error or an error outside function code.\nA green title indicates that all tests (if defined) passed. In this case test results are not shown.': 'Якщо в наданому вище звіті присутня позначка про помилку (ticket number), то це вказує на збій у виконанні контролера ще до початку запуску док-тестів. Це, зазвичай, сигналізує про помилку вирівнювання тексту програми (indention error) або помилку за межами функції (error outside function code).\r\nЗелений заголовок сигналізує, що всі тести (з наявних) пройшли успішно. В цьому випадку результат тестів показано не буде.',
'If the report above contains a ticket number it indicates a failure in executing the controller, before any attempt to execute the doctests. This is usually due to an indentation error or an error outside function code.\nA green title indicates that all tests (if defined) passed. In this case test results are not shown.': 'Якщо в наданому вище звіті присутня позначка про помилку (ticket number), то це вказує на збій у виконанні контролера ще до початку запуску док-тестів. Це, зазвичай, сигналізує про помилку вирівнювання тексту програми (indention error) або помилку за межами функції (error outside function code). Зелений заголовок сигналізує, що всі тести (з наявних) пройшли успішно. В цьому випадку результат тестів показано не буде.',
'Import/Export': 'Імпорт/Експорт',
'In development, use the default Rocket webserver that is currently supported by this debugger.': 'Під час розробки , використовуйте вбудований веб-сервер Rocket, він найкраще налаштований на спільну роботу з інтерактивним ладначем.',
'includes': 'включає',
@@ -306,7 +310,11 @@
'Powered by': 'Працює на',
'previous 100 rows': 'попередні 100 рядків',
'Previous Edit Point': 'Попереднє місце редагування',
'Private files': 'Приватні файли',
'private files': 'приватні файли',
'Project Progress': 'Поступ проекту',
'Pull': 'Втягнути',
'Push': 'Проштовхнути',
'Query:': 'Запит:',
'RAM Cache Keys': 'Ключ ОЗП-кешу (RAM Cache)',
'Ram Cleared': "Кеш в пам'яті очищено",
@@ -383,6 +391,7 @@
'There are no translators': 'Перекладів нема',
'There are no translators, only default language is supported': 'Перекладів нема, підтримується тільки мова оригіналу',
'There are no views': 'Відображень нема',
'These files are not served, they are only available from within your app': 'Ці файли ніяк не обробляються, вони доступні тільки в межах вашого додатку',
'These files are served without processing, your images go here': 'Ці файли обслуговуються "як є", без обробки, ваші графічні файли та інші супутні файли даних можуть знаходитись тут',
"This debugger may not work properly if you don't have a threaded webserver or you're using multiple daemon processes.": 'Цей ладнач може працювати некоректно, якщо ви використовуєте веб-сервер без підтримки потоків або використовуєте декілька сервісних процесів.',
'This is an experimental feature and it needs more testing. If you decide to downgrade you do it at your own risk': 'Це експериментальна властивість, яка вимагає подальшого тестування. Якщо ви вирішили повернутись на попередню версію, ви це робити на ваш власний розсуд.',
@@ -391,6 +400,8 @@
"This page can commit your changes to an openshift app repo and push them to your cloud instance. This assumes that you've already created the application instance using the web2py skeleton and have that repo somewhere on a filesystem that this web2py instance can access. This functionality requires GitPython installed and on the python path of the runtime that web2py is operating in.": 'На цій сторінці можна закомітити ваші зміни в репозитарій додатків openshift та проштовхнути їх у ваш примірник в хмарі. Це передбачає, що ви вже створили примірник додатку, використовуючи базовий додаток web2py, як скелет, і маєте репозитарій десь на вашій файловій системі, причому екземпляр web2py має до нього доступ. Ця властивість вимагає наявності встановленого модулю GitPython так, щоб web2py міг його викликати.',
'This page can upload your application to the Google App Engine computing cloud. Mind that you must first create indexes locally and this is done by installing the Google appserver and running the app locally with it once, or there will be errors when selecting records. Attention: deployment may take long time, depending on the network speed. Attention: it will overwrite your app.yaml. DO NOT SUBMIT TWICE.': 'На цій сторінці ви можете завантажити свій додаток в сервіс хмарних обчислень Google App Engine. Майте на увазі, що спочатку необхідно локально створити індекси, і це можна зробити встановивши сервер додатків Google appserver та запустивши в ньому додаток один раз, інакше при виборі записів виникатимуть помилки. Увага: розгортання може зайняти тривалий час, в залежності від швидкості мережі. Увага: це призведе до перезапису app.yaml. НЕ ПУБЛІКУЙТЕ ДВІЧІ.',
'this page to see if a breakpoint was hit and debug interaction is required.': 'цю сторінку, щоб побачити, чи була досягнута точка зупинки і процес ладнання розпочато.',
'This will pull changes from the remote repo for application "%s"?': '"Втягнути" (pull) зміни з віддаленого репозитарію для додатку "%s"?',
'This will push changes to the remote repo for application "%s".': 'Проштовхнути (push) зміни у віддалений репозитарій для додатку "%s"?',
'ticket': 'позначка',
'Ticket': 'Позначка (Ticket)',
'Ticket ID': 'Ід.позначки (Ticket ID)',

View File

@@ -29,7 +29,7 @@
{{pass}}
{{pass}}
<h3>
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
</h3>
[ {{=A(str(T('insert new'))+' '+table,_href=URL('insert',args=[db,table]))}} ]
<br /><br />
@@ -50,7 +50,7 @@
{{=T('Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.')}}<br/>
{{=T('"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN')}}</p>
<br/><br/>
<h4>{{=nrows}} {{=T("selected")}}</h4>
<h4>{{=T("%s selected", nrows)}}</h4>
{{if start>0:}}[ {{=A(T('previous 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start-100)))}} ]{{pass}}
{{if stop<nrows:}}[ {{=A(T('next 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start+100)))}} ]{{pass}}
{{if rows:}}
@@ -105,40 +105,34 @@
{{elif request.function == 'ccache':}}
<h2>Cache</h2>
<h2>{{T("Cache")}}</h2>
<div class="list">
<div class="list-header">
<h3>Statistics</h3>
<h3>{{T("Statistics")}}</h3>
</div>
<div class="content">
<h4>Overview</h4>
<p>Number of entries: <strong>{{=total['entries']}}</strong>
{{if total['entries'] > 0:}}
</p>
<h4>{{=T("Overview")}}</h4>
<p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p>
{{if total['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses})",
dict(ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}}
</p>
<p>
Hit Ratio:
<strong>{{=total['ratio']}}%</strong>
(<strong>{{=total['hits']}}</strong> hits
and <strong>{{=total['misses']}}</strong> misses)
</p>
<p>
Size of cache:
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=total['objects']}}</strong> items,
<strong>{{=total['bytes']}}</strong> bytes
{{if total['bytes'] > 524287:}}
(<strong>{{="%.0d" % (total['bytes'] / 1048576)}} MB</strong>)
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{=T.M("**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}", dict(items=total['objects'], bytes=total['bytes']))}}
{{if total['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", total['bytes'] / 1048576)}}
{{pass}}
{{else:}}
{{=T.M("**not available** (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
</p>
<p>
Cache contains items up to
<strong>{{="%02d" % total['oldest'][0]}}</strong> hours
<strong>{{="%02d" % total['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % total['oldest'][2]}}</strong> seconds old.
{{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}}
</p>
{{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle();')}}
<div class="hidden" id="all_keys">
@@ -147,31 +141,26 @@
<br />
{{pass}}
<h4>RAM</h4>
<p>Number of entries: <strong>{{=ram['entries']}}</strong>
{{if ram['entries'] > 0:}}</p>
<p>
Hit Ratio:
<strong>{{=ram['ratio']}}%</strong>
(<strong>{{=ram['hits']}}</strong> hits
and <strong>{{=ram['misses']}}</strong> misses)
<h4>{{=T("RAM")}}</h4>
<p>{{=T.M("Number of entries: **%s**", ram['entries'])}}</p>
{{if ram['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict( ratio=ram['ratio'], hits=ram['hits'], misses=ram['misses']))}}
</p>
<p>
Size of cache:
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=ram['objects']}}</strong> items,
<strong>{{=ram['bytes']}}</strong> bytes
{{if ram['bytes'] > 524287:}}
(<strong>{{=ram['bytes'] / 1048576}} MB</strong>)
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{=T.M("**%(items)s** items, **%(bytes)s** %%{byte(bytes)}", dict(items=ram['objects'], bytes=ram['bytes']))}}
{{if ram['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", ram['bytes'] / 10485576)}}
{{pass}}
{{else:}}
{{=T.M("``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
</p>
<p>
RAM contains items up to
<strong>{{="%02d" % ram['oldest'][0]}}</strong> hours
<strong>{{="%02d" % ram['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % ram['oldest'][2]}}</strong> seconds old.
{{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}}
</p>
{{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle();')}}
<div class="hidden" id="ram_keys">
@@ -180,43 +169,38 @@
<br />
{{pass}}
<h4>DISK</h4>
<p>Number of entries: <strong>{{=disk['entries']}}</strong>
{{if disk['entries'] > 0:}}
</p>
<p>
Hit Ratio:
<strong>{{=disk['ratio']}}%</strong>
(<strong>{{=disk['hits']}}</strong> hits
and <strong>{{=disk['misses']}}</strong> misses)
</p>
<p>
Size of cache:
<h4>{{=T("DISK")}}</h4>
<p>{{=T.M("Number of entries: **%s**", disk['entries'])}}</p>
{{if disk['entries'] > 0:}}
<p>
{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict(ratio=disk['ratio'], hits=disk['hits'], misses=disk['misses']))}}
</p>
<p>
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=disk['objects']}}</strong> items,
<strong>{{=disk['bytes']}}</strong> bytes
{{if disk['bytes'] > 524287:}}
(<strong>{{=disk['bytes'] / 1048576}} MB</strong>)
{{=T.M("**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}", dict( items=disk['objects'], bytes=disk['bytes']))}}
{{if disk['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", disk['bytes'] / 1048576)}}
{{pass}}
{{else:}}
{{=T.M("``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{pass}}
</p>
<p>
DISK contains items up to
<strong>{{="%02d" % disk['oldest'][0]}}</strong> hours
<strong>{{="%02d" % disk['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % disk['oldest'][2]}}</strong> seconds old.
</p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}}
<div class="hidden" id="disk_keys">
</p>
<p>
{{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}}
</p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}}
<div class="hidden" id="disk_keys">
{{=disk['keys']}}
</div>
<br />
</div>
<br />
{{pass}}
</div>
<div class="list-header">
<h3>Manage Cache</h3>
<h3>{{=T("Manage Cache")}}</h3>
</div>
<div class="content">

View File

@@ -29,7 +29,7 @@
{{pass}}
{{pass}}
<h3>
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
</h3>
[ {{=A(str(T('insert new'))+' '+table,_href=URL('insert',args=[db,table]))}} ]
<br /><br />
@@ -50,7 +50,7 @@
{{=T('Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.')}}<br/>
{{=T('"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN')}}</p>
<br/><br/>
<h4>{{=nrows}} {{=T("selected")}}</h4>
<h4>{{=T("%s selected", nrows)}}</h4>
{{if start>0:}}[ {{=A(T('previous 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start-100)))}} ]{{pass}}
{{if stop<nrows:}}[ {{=A(T('next 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start+100)))}} ]{{pass}}
{{if rows:}}
@@ -105,40 +105,34 @@
{{elif request.function == 'ccache':}}
<h2>Cache</h2>
<h2>{{T("Cache")}}</h2>
<div class="list">
<div class="list-header">
<h3>Statistics</h3>
<h3>{{T("Statistics")}}</h3>
</div>
<div class="content">
<h4>Overview</h4>
<p>Number of entries: <strong>{{=total['entries']}}</strong>
{{if total['entries'] > 0:}}
</p>
<h4>{{=T("Overview")}}</h4>
<p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p>
{{if total['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses})",
dict(ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}}
</p>
<p>
Hit Ratio:
<strong>{{=total['ratio']}}%</strong>
(<strong>{{=total['hits']}}</strong> hits
and <strong>{{=total['misses']}}</strong> misses)
</p>
<p>
Size of cache:
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=total['objects']}}</strong> items,
<strong>{{=total['bytes']}}</strong> bytes
{{if total['bytes'] > 524287:}}
(<strong>{{="%.0d" % (total['bytes'] / 1048576)}} MB</strong>)
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{=T.M("**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}", dict(items=total['objects'], bytes=total['bytes']))}}
{{if total['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", total['bytes'] / 1048576)}}
{{pass}}
{{else:}}
{{=T.M("**not available** (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
</p>
<p>
Cache contains items up to
<strong>{{="%02d" % total['oldest'][0]}}</strong> hours
<strong>{{="%02d" % total['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % total['oldest'][2]}}</strong> seconds old.
{{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}}
</p>
{{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle();')}}
<div class="hidden" id="all_keys">
@@ -147,31 +141,26 @@
<br />
{{pass}}
<h4>RAM</h4>
<p>Number of entries: <strong>{{=ram['entries']}}</strong>
{{if ram['entries'] > 0:}}</p>
<p>
Hit Ratio:
<strong>{{=ram['ratio']}}%</strong>
(<strong>{{=ram['hits']}}</strong> hits
and <strong>{{=ram['misses']}}</strong> misses)
<h4>{{=T("RAM")}}</h4>
<p>{{=T.M("Number of entries: **%s**", ram['entries'])}}</p>
{{if ram['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict( ratio=ram['ratio'], hits=ram['hits'], misses=ram['misses']))}}
</p>
<p>
Size of cache:
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=ram['objects']}}</strong> items,
<strong>{{=ram['bytes']}}</strong> bytes
{{if ram['bytes'] > 524287:}}
(<strong>{{=ram['bytes'] / 1048576}} MB</strong>)
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{=T.M("**%(items)s** items, **%(bytes)s** %%{byte(bytes)}", dict(items=ram['objects'], bytes=ram['bytes']))}}
{{if ram['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", ram['bytes'] / 10485576)}}
{{pass}}
{{else:}}
{{=T.M("``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
</p>
<p>
RAM contains items up to
<strong>{{="%02d" % ram['oldest'][0]}}</strong> hours
<strong>{{="%02d" % ram['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % ram['oldest'][2]}}</strong> seconds old.
{{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}}
</p>
{{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle();')}}
<div class="hidden" id="ram_keys">
@@ -180,43 +169,38 @@
<br />
{{pass}}
<h4>DISK</h4>
<p>Number of entries: <strong>{{=disk['entries']}}</strong>
{{if disk['entries'] > 0:}}
</p>
<p>
Hit Ratio:
<strong>{{=disk['ratio']}}%</strong>
(<strong>{{=disk['hits']}}</strong> hits
and <strong>{{=disk['misses']}}</strong> misses)
</p>
<p>
Size of cache:
<h4>{{=T("DISK")}}</h4>
<p>{{=T.M("Number of entries: **%s**", disk['entries'])}}</p>
{{if disk['entries'] > 0:}}
<p>
{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict(ratio=disk['ratio'], hits=disk['hits'], misses=disk['misses']))}}
</p>
<p>
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=disk['objects']}}</strong> items,
<strong>{{=disk['bytes']}}</strong> bytes
{{if disk['bytes'] > 524287:}}
(<strong>{{=disk['bytes'] / 1048576}} MB</strong>)
{{=T.M("**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}", dict( items=disk['objects'], bytes=disk['bytes']))}}
{{if disk['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", disk['bytes'] / 1048576)}}
{{pass}}
{{else:}}
{{=T.M("``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{pass}}
</p>
<p>
DISK contains items up to
<strong>{{="%02d" % disk['oldest'][0]}}</strong> hours
<strong>{{="%02d" % disk['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % disk['oldest'][2]}}</strong> seconds old.
</p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}}
<div class="hidden" id="disk_keys">
</p>
<p>
{{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}}
</p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}}
<div class="hidden" id="disk_keys">
{{=disk['keys']}}
</div>
<br />
</div>
<br />
{{pass}}
</div>
<div class="list-header">
<h3>Manage Cache</h3>
<h3>{{=T("Manage Cache")}}</h3>
</div>
<div class="content">

View File

@@ -6,4 +6,11 @@
'изменена': ['изменены','изменено'],
'строка': ['строки','строк'],
'удалена': ['удалены','удалено'],
'день': ['дня', 'дней'],
'месяц': ['месяца','месяцев'],
'неделю': ['недели','недель'],
'год': ['года','лет'],
'час': ['часа','часов'],
'минуту': ['минуты','минут'],
'секунду': ['секунды','секунд'],
}

View File

@@ -10,4 +10,8 @@
'секунду': ['секунди','секунд'],
'схибнення': ['схибнення','схибнень'],
'хвилину': ['хвилини','хвилин'],
'день': ['дні', 'днів'],
'місяць': ['місяці','місяців'],
'тиждень': ['тижні','тижнів'],
'рік': ['роки','років'],
}

View File

@@ -3,11 +3,25 @@
'!langcode!': 'ru',
'!langname!': 'Русский',
'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"Изменить" - необязательное выражение вида "field1=\'новое значение\'". Результаты операции JOIN нельзя изменить или удалить.',
'%d days ago': '%d %%{день} тому',
'%d hours ago': '%d %%{час} тому',
'%d minutes ago': '%d %%{минуту} тому',
'%d months ago': '%d %%{месяц} тому',
'%d seconds ago': '%d %%{секунду} тому',
'%d weeks ago': '%d %%{неделю} тому',
'%d years ago': '%d %%{год} тому',
'%s %%{row} deleted': '%%{!удалена[0]} %s %%{строка[0]}',
'%s %%{row} updated': '%%{!изменена[0]} %s %%{строка[0]}',
'%s selected': '%%{!выбрана[0]} %s %%{запись[0]}',
'%Y-%m-%d': '%Y-%m-%d',
'%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S',
'1 day ago': '1 день тому',
'1 hour ago': '1 час тому',
'1 minute ago': '1 минуту тому',
'1 month ago': '1 месяц тому',
'1 second ago': '1 секунду тому',
'1 week ago': '1 неделю тому',
'1 year ago': '1 год тому',
'About': 'About',
'Access Control': 'Access Control',
'Administrative Interface': 'Administrative Interface',
@@ -31,8 +45,8 @@
'Current session': 'Текущая сессия',
'customize me!': 'настройте внешний вид!',
'data uploaded': 'данные загружены',
'Database': 'Database',
'database': 'база данных',
'Database': 'Database',
'database %s select': 'выбор базы данных %s',
'db': 'БД',
'DB Model': 'DB Model',
@@ -93,6 +107,7 @@
'new record inserted': 'новая запись добавлена',
'next 100 rows': 'следующие 100 строк',
'No databases in this application': 'В приложении нет баз данных',
'now': 'сейчас',
'Object or table name': 'Object or table name',
'Old password': 'Старый пароль',
'Online examples': 'примеры он-лайн',

View File

@@ -3,11 +3,25 @@
'!langcode!': 'uk',
'!langname!': 'Українська',
'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"Оновити" це додатковий вираз, такий, як "field1=\'нове_значення\'". Ви не можете змінювати або вилучати дані об\'єднаних таблиць.',
'%d days ago': '%d %%{день} тому',
'%d hours ago': '%d %%{годину} тому',
'%d minutes ago': '%d %%{хвилину} тому',
'%d months ago': '%d %%{місяць} тому',
'%d secods ago': '%d %%{секунду} тому',
'%d weeks ago': '%d %%{тиждень} тому',
'%d years ago': '%d %%{рік} тому',
'%s %%{row} deleted': 'Вилучено %s %%{рядок}',
'%s %%{row} updated': 'Змінено %s %%{рядок}',
'%s selected': 'Вибрано %s %%{запис}',
'%Y-%m-%d': '%Y/%m/%d',
'%Y-%m-%d %H:%M:%S': '%Y/%m/%d %H:%M:%S',
'1 day ago': '1 день тому',
'1 hour ago': '1 годину тому',
'1 minute ago': '1 хвилину тому',
'1 month ago': '1 місяць тому',
'1 second ago': '1 секунду тому',
'1 week ago': '1 тиждень тому',
'1 year ago': '1 рік тому',
'@markmin\x01(**%.0d MB**)': '(**``%.0d``:red МБ**)',
'@markmin\x01**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}': '**%(items)s** %%{елемент(items)}, **%(bytes)s** %%{байт(bytes)}',
'@markmin\x01``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)': '**нема в наявності** (потребує Пітонівської бібліотеки [[guppy {посилання відкриється у новому вікні} http://pypi.python.org/pypi/guppy/ popup]])',
@@ -115,6 +129,7 @@
'new record inserted': 'новий рядок додано',
'next 100 rows': 'наступні 100 рядків',
'No databases in this application': 'Даний додаток не використовує базу даних',
'now': 'зараз',
'Object or table name': "Об'єкт або назва таблиці",
'Old password': 'Старий пароль',
'Online examples': 'Зразковий демо-сайт',

View File

@@ -29,7 +29,7 @@
{{pass}}
{{pass}}
<h3>
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
</h3>
[ {{=A(str(T('insert new'))+' '+table,_href=URL('insert',args=[db,table]))}} ]
<br /><br />
@@ -50,7 +50,7 @@
{{=T('Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.')}}<br/>
{{=T('"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN')}}</p>
<br/><br/>
<h4>{{=nrows}} {{=T("selected")}}</h4>
<h4>{{=T("%s selected", nrows)}}</h4>
{{if start>0:}}[ {{=A(T('previous 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start-100)))}} ]{{pass}}
{{if stop<nrows:}}[ {{=A(T('next 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start+100)))}} ]{{pass}}
{{if rows:}}
@@ -105,40 +105,34 @@
{{elif request.function == 'ccache':}}
<h2>Cache</h2>
<h2>{{T("Cache")}}</h2>
<div class="list">
<div class="list-header">
<h3>Statistics</h3>
<h3>{{T("Statistics")}}</h3>
</div>
<div class="content">
<h4>Overview</h4>
<p>Number of entries: <strong>{{=total['entries']}}</strong>
{{if total['entries'] > 0:}}
</p>
<h4>{{=T("Overview")}}</h4>
<p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p>
{{if total['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses})",
dict(ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}}
</p>
<p>
Hit Ratio:
<strong>{{=total['ratio']}}%</strong>
(<strong>{{=total['hits']}}</strong> hits
and <strong>{{=total['misses']}}</strong> misses)
</p>
<p>
Size of cache:
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=total['objects']}}</strong> items,
<strong>{{=total['bytes']}}</strong> bytes
{{if total['bytes'] > 524287:}}
(<strong>{{="%.0d" % (total['bytes'] / 1048576)}} MB</strong>)
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{=T.M("**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}", dict(items=total['objects'], bytes=total['bytes']))}}
{{if total['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", total['bytes'] / 1048576)}}
{{pass}}
{{else:}}
{{=T.M("**not available** (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
</p>
<p>
Cache contains items up to
<strong>{{="%02d" % total['oldest'][0]}}</strong> hours
<strong>{{="%02d" % total['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % total['oldest'][2]}}</strong> seconds old.
{{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}}
</p>
{{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle();')}}
<div class="hidden" id="all_keys">
@@ -147,31 +141,26 @@
<br />
{{pass}}
<h4>RAM</h4>
<p>Number of entries: <strong>{{=ram['entries']}}</strong>
{{if ram['entries'] > 0:}}</p>
<p>
Hit Ratio:
<strong>{{=ram['ratio']}}%</strong>
(<strong>{{=ram['hits']}}</strong> hits
and <strong>{{=ram['misses']}}</strong> misses)
<h4>{{=T("RAM")}}</h4>
<p>{{=T.M("Number of entries: **%s**", ram['entries'])}}</p>
{{if ram['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict( ratio=ram['ratio'], hits=ram['hits'], misses=ram['misses']))}}
</p>
<p>
Size of cache:
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=ram['objects']}}</strong> items,
<strong>{{=ram['bytes']}}</strong> bytes
{{if ram['bytes'] > 524287:}}
(<strong>{{=ram['bytes'] / 1048576}} MB</strong>)
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{=T.M("**%(items)s** items, **%(bytes)s** %%{byte(bytes)}", dict(items=ram['objects'], bytes=ram['bytes']))}}
{{if ram['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", ram['bytes'] / 10485576)}}
{{pass}}
{{else:}}
{{=T.M("``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
</p>
<p>
RAM contains items up to
<strong>{{="%02d" % ram['oldest'][0]}}</strong> hours
<strong>{{="%02d" % ram['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % ram['oldest'][2]}}</strong> seconds old.
{{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}}
</p>
{{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle();')}}
<div class="hidden" id="ram_keys">
@@ -180,43 +169,38 @@
<br />
{{pass}}
<h4>DISK</h4>
<p>Number of entries: <strong>{{=disk['entries']}}</strong>
{{if disk['entries'] > 0:}}
</p>
<p>
Hit Ratio:
<strong>{{=disk['ratio']}}%</strong>
(<strong>{{=disk['hits']}}</strong> hits
and <strong>{{=disk['misses']}}</strong> misses)
</p>
<p>
Size of cache:
<h4>{{=T("DISK")}}</h4>
<p>{{=T.M("Number of entries: **%s**", disk['entries'])}}</p>
{{if disk['entries'] > 0:}}
<p>
{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict(ratio=disk['ratio'], hits=disk['hits'], misses=disk['misses']))}}
</p>
<p>
{{=T("Size of cache:")}}
{{if object_stats:}}
<strong>{{=disk['objects']}}</strong> items,
<strong>{{=disk['bytes']}}</strong> bytes
{{if disk['bytes'] > 524287:}}
(<strong>{{=disk['bytes'] / 1048576}} MB</strong>)
{{=T.M("**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}", dict( items=disk['objects'], bytes=disk['bytes']))}}
{{if disk['bytes'] > 524287:}}
{{=T.M("(**%.0d MB**)", disk['bytes'] / 1048576)}}
{{pass}}
{{else:}}
{{=T.M("``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)")}}
{{pass}}
{{else:}} <strong>not available</strong> (requires the Python <a href="http://pypi.python.org/pypi/guppy/" target="_blank">guppy</a> library)
{{pass}}
</p>
<p>
DISK contains items up to
<strong>{{="%02d" % disk['oldest'][0]}}</strong> hours
<strong>{{="%02d" % disk['oldest'][1]}}</strong> minutes
<strong>{{="%02d" % disk['oldest'][2]}}</strong> seconds old.
</p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}}
<div class="hidden" id="disk_keys">
</p>
<p>
{{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}}
</p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}}
<div class="hidden" id="disk_keys">
{{=disk['keys']}}
</div>
<br />
</div>
<br />
{{pass}}
</div>
<div class="list-header">
<h3>Manage Cache</h3>
<h3>{{=T("Manage Cache")}}</h3>
</div>
<div class="content">

File diff suppressed because one or more lines are too long