This page is a translated version of the page ToolTranslate and the translation is 97% complete.
Outdated translations are marked like this.

Гэта — падручнік для прылады ToolTranslate. Сьмела перакладайце яго!

ToolTranslate у дзеяньні

Прызначэньне

Шматлікім прыладам на WMF Labs не стае перакладу інтэрфэйсу, то бок яны даступныя толькі адной мовай, зазвычай ангельскай. Нават шматмоўныя прылады дзеля даданьня новых моваў і перакладаў карыстаюцца прымітыўнымі спосабамі. ToolTranslate прапануе цэнтралізаваны, зручны для карыстальніка спосаб для Супольнасьці прадастаўленьня перакладаў прыладаў. Прылады мусяць падтрымліваць гэты мэханізм, то бок яны павінны быць аднаразова «перапрацаваныя» дзеля выкарыстаньня дынамічнага тэксту інтэрфэйсу замест статычнага. Арыгінальны допіс у блогу.

Пераклад

  1. Перайдзіце да прылады
  2. Пры неабходнасьці аўтарызуйце прыладу
  3. Абярыце прыладу дзеля перакладу з выпадаючага вакенца ўверсе старонкі
  4. Абярыце ці дадайце мову перакладу
  5. Двойчы пстрыкніце на «кратцы», дзе хочаце ўпісаць новы пераклад ці палепшыць існы
  6. Упішыце тэкст. Можна выкарыстоўваць HTML (без JavaScript!). Пры перакладзе могуць усплываць падказкі з аналягічных перакладаў іншых прыладаў, іх можна выкарыстоўваць дзеля аднастайнасьці.
  7. Націсьніце OK. Гатова! З-за кэшаваньня старонак броўзэрам вашыя пераклады могуць зьявіцца пасьля перазагрузкі старонкі.

Рэсурсы

Тэхнічнае

Пераклады захоўваюцца ў базе зьвестак у 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

Як: 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') ;

Глядзіце працоўны прыклад у гэтай прыладзе.