ToolTranslate
Гэта — падручнік для прылады ToolTranslate. Сьмела перакладайце яго!
Прызначэньне
Шматлікім прыладам на WMF Labs не стае перакладу інтэрфэйсу, то бок яны даступныя толькі адной мовай, зазвычай ангельскай. Нават шматмоўныя прылады дзеля даданьня новых моваў і перакладаў карыстаюцца прымітыўнымі спосабамі. ToolTranslate прапануе цэнтралізаваны, зручны для карыстальніка спосаб для Супольнасьці прадастаўленьня перакладаў прыладаў. Прылады мусяць падтрымліваць гэты мэханізм, то бок яны павінны быць аднаразова «перапрацаваныя» дзеля выкарыстаньня дынамічнага тэксту інтэрфэйсу замест статычнага. Арыгінальны допіс у блогу.
Пераклад
- Перайдзіце да прылады
- Пры неабходнасьці аўтарызуйце прыладу
- Абярыце прыладу дзеля перакладу з выпадаючага вакенца ўверсе старонкі
- Абярыце ці дадайце мову перакладу
- Двойчы пстрыкніце на «кратцы», дзе хочаце ўпісаць новы пераклад ці палепшыць існы
- Упішыце тэкст. Можна выкарыстоўваць HTML (без JavaScript!). Пры перакладзе могуць усплываць падказкі з аналягічных перакладаў іншых прыладаў, іх можна выкарыстоўваць дзеля аднастайнасьці.
- Націсьніце OK. Гатова! З-за кэшаваньня старонак броўзэрам вашыя пераклады могуць зьявіцца пасьля перазагрузкі старонкі.
Рэсурсы
- Дэманстрацыя інтэрфэйсу ToolTranslate (ужытая на самой гэтай прыладзе!)
- Простая дэманстрацыйная прылада і крынічнік на HTML/JS
- Вікі любіць славутасьці (для ВікіЗьвестак) як крыху амбітнейшы прыклад
- рэпазыторый git
Тэхнічнае
Пераклады захоўваюцца ў базе зьвестак у Labs. Старыя вэрсіі перакладаў захоўваюцца, і перакладам прыпісваецца аўтарства адпаведнага рэдактара (даступны таксама прагляд «апошніх зьмяненьняў»).
Каб спрасьціць доступ да зьвестак перакладу, усе пераклады дадаткова захоўваюцца ў файлах JSON, якія абнаўляюцца пры кожным зьмяненьні. Прыклад для «demotool1»:
- toolinfo.json — файл JSON з інфармацыяй пра прыладу
- en.json — файл JSON з ангельскім перакладам гэтай прылады. Іншыя мовы працуюць такім сама чынам з адпаведным кодам мовы
Існуе таксама файл JSON з усімі карэктнымі мовамі.
База зьвестак
Крынічныя зьвесткі захоўваюцца ў базе зьвестак s53069__tooltranslate_p
на tools-db на tools labs (mysql --defaults-file=~/replica.my.cnf -h tools-db s53069__tooltranslate_p
). Пры патрэбе зьвесткі могуць быць запытаныя таксама і адтуль.
Даступныя гэтакія табліцы:
- tool
- id | name | label | url | owner
- translation
- id | tool_id | language | key | json | user | timestamp | current
Як: HTML/JS
- Праверце дэма-код
- Код ToolTranslate JS мае пералік опцыяў, якімі вы можаце карыстацца
- Калі вам патрэбны перакладзены радок (напрыклад, для аб’екту
tt
), яго вам выдасьцьtt.t(ключ)
альбоtt.t(ключ,{lang:код_мовы})
- У HTML дадайце да любога тэгу атрыбут
tt
, напрыклад<span tt='ключ'></span>
. - Радкі перакладу з падстаноўкамі ад «https://bitbucket.org/magnusmanske/tooltranslate/src/d93e2e706a76be21ee02affb0bc1cdece8f087ae/public_html/demos/demotool1.html?at=master&fileviewer=file-view-default» да «$9» аўтаматычна заменяць гэтыя падстаноўкі атрыбутамі тэгаў «tt1»—«tt9» адпаведна. Гэта дазваляе зьмяняць мову інтэрфэйсу без падзелу тэксту на мноства кавалкаў. Пераклад ня будзе зьменены, калі атрыбуты адсутнічаюць. У JavaScript:
tt.t(ключ,{params:['значэньне для https://bitbucket.org/magnusmanske/tooltranslate/src/d93e2e706a76be21ee02affb0bc1cdece8f087ae/public_html/demos/demotool1.html?at=master&fileviewer=file-view-default','значэньне для https://bitbucket.org/magnusmanske/tooltranslate/src/d93e2e706a76be21ee02affb0bc1cdece8f087ae/public_html/tt.js?at=master&fileviewer=file-view-default']})
.
Як: PHP
Існуе кляса PHP, якую вы можаце дадаць у Labs наступным чынам:
require_once ( "/data/project/tooltranslate/public_html/tt.php") ;
Пасьля вы можаце стварыць элемэнт клясы:
$tt = new ToolTranslation ( array ( 'tool' => 'your_tool_key' , 'language' => 'de' , 'fallback' => 'en' , 'highlight_missing' => true ) ) ; // Усе, акрамя 'tool', неабавязковае
Беспасрэднае выкарыстаньне
У PHP існуюць два спосабу атрыманьня перакладаў інтэрфэйсу. Першы — беспасрэднае атрыманьне перакладзенага радку
print "<p>" . $tt->t('translation_key') . "</p>" ;
Аднак ён мае недахоп: пераклад нельга зьмяніць без абнаўленьня старонкі.
Выкарыстаньне праз JS
Наўзамен вы можаце дадаць «тэгі перакладу» HTML (глядзіце вышэй), а кляса дадасьць неабходнае абгортваньне JS. Яшчэ адна перавага: кляса PHP не патрабуе загрузкі ніякіх файлаў перакладаў, калі вы не карысталіся «наўпроставым» перакладам вышэй. Каб скарыстацца перакладам HTML/JS, сэкцыя <head> вашых HTML-старонак мусяць зьмяшчаць
<script src="https://tools-static.wmflabs.org/tooltranslate/tt.js">
(Таксама вам спатрэбіцца jQuery). Пры генэраваньні старонкі напішыце замест таго, што вышэй:
print "<p tt='translation_key'></p>" ;
Недзе ў вывадзе (магчыма, бліжэй да канца) неабходна дадаць код абгортваньня:
print $tt->getJS() ;
Гэта праініцыялізуе патрэбны JS, вывядзе парамэтры, выкарыстаныя ў элемэнце PHP (базавую мову і да т. п.). Калі вам патрэбны «выпадаючы сьпіс перакладу», дадайце ў код HTML абгортны элемэнт
<div id='tooltranslate_wrapper'></div>
пасьля перадайце ў мэтад выкліку getJS у якасьці парамэтру «jQuery accessor»:
print $tt->getJS('#tooltranslate_wrapper') ;
Глядзіце працоўны прыклад у гэтай прыладзе.