Nápověda:Rozšíření:Translate/Překladatelská nápověda
Překladatelská nápověda (translation aids nebo translation helpers) je soubor modulů, které v průběhu překladu nabízejí překladateli další informace ke zprávě. Jako jsou návrhy na překlad zprávy ze strojového překladu nebo překladové paměti. Dokumentace ke zprávě nebo i tak základní věc, jakou je definice zprávy - textu, který se má přeložit.
Mezi informacemi, které jsou součástí souboru zpráv a těmi, které poskytuje překladatelská nápověda je určitý přesah. Ale v podstatě se dá říct, že v souboru zpráv jsou uloženy pouze informace, které jsou nezbytně nutné pro zpracování dobrého překladu: Definice zpráv, jejich překlady, informace o stavu překladu a záznam o posledním překladateli (protože revidovat můžete pouze zprávy, které překládal někdo jiný) atd.
Rozšíření Translate obsahuje několik tříd, které během překladu dodávají pomocné informace. Každá z nich je samostatný modul třídy TranslationAid (třída co se stará o překladatelskou nápovědu), který má implementovanou metodu s názvem getData
, vracející vyžádaná data ve strukturovaném formátu (vnořená pole). Moduly lze volat přímo z PHP kódu, nebo přes WebAPI.
Jak používat překladatelskou nápovědu v MediaWiki
Toto je jednoduchý příklad, jak lze získat dokumentaci ke zprávě, je-li dostupná.
$title = Title::newFromText( 'MediaWiki:Jan/de' );
$handle = new MessageHandle( $title );
$group = $handle->getGroup();
$context = RequestContext::newExtraneousContext( $title );
$aid = new DocumentationAid( $group, $handle, $context );
try {
$data = $aid->getData();
$docHtml = $aid['html'];
} catch ( TranslationHelperException $e ) {
return;
}
echo $docHtml . "\n";
Jak volat překladatelskou nápovědu přes API
Jak bylo zmíněno výše, překladatelskou nápovědu lze volat rovněž přes webové API MediaWiki. Pro získání nápovědy, stačí udělat HTTP GET na URL http://translatewiki.net/w/api.php?action=translationaids&title=MediaWiki%3AJan%2Fde V URL můžete upřesnit formát, ve kterém se má vrátit výsledek. Nejčastěji se využívá JSON a XML. Přístup přes API nevyžaduje autentizaci, ale některé části překladatelské nápovědy, jako je například "inotherlanguages", pracují s uživatelsky zvolenou preferencí jazyka. Chcete-li použít tuto nápovědu, pak se musíte nejdřív přihlásit do API, jak je popsáno v dokumentaci k WebAPI MediaWiki.
Data, která se vrátí mohou vypadat takto (formát json, upravený do čitelnější podoby):
{
"helpers": {
"definition": {
"value": "Jan",
"language": "en"
},
"translation": {
"language": "de",
"fuzzy": false,
"value": "Jan."
},
"inotherlanguages": [
],
"documentation": {
"language": "en",
"value": "Abbreviation of January, the first month of the Gregorian calendar",
"html": "<p>Abbreviation of January, the first month of the Gregorian calendar\n<\/p>"
},
"mt": [
{
"target": "Jan",
"service": "Microsoft",
"source_language": "en",
"source": "Jan"
},
{
"target": "Jan",
"service": "Yandex",
"source_language": "en",
"source": "Jan"
}
],
"definitiondiff": {
"error": "No changes"
},
"ttmserver": [
{
"source": "Jan",
"target": "Jan.",
"context": "MediaWiki:Jan",
"location": "MediaWiki:Jan\/de",
"quality": 1,
"wiki": "mediawiki-bw_",
"service": "TTMServer",
"source_language": "en",
"local": true,
"uri": "https:\/\/translatewiki.net\/wiki\/MediaWiki:Jan\/de"
}
],
"support": {
"url": "\/\/translatewiki.net\/w\/i.php?title=Support&lqt_method=talkpage_new_thread&lqt_subject_field=About+%5B%5BMediaWiki%3AJan%2Fde%5D%5D"
}
}
Zde je zaručeno, že každá požadovaná pomůcka má klíč (dokud požadavek nešťastně selže), ale zatímco na straně PHP používáme výjimky, na straně JavaScriptu může mít každá pomůcka nastaven klíč "error" s chybovou zprávou nastavenou jako hodnotu.
Můžete vidět příklad výše s definitiondiff
.
Signalizuje, že nemůže zobrazit rozdíl, protože od posledního překladu nedošlo k žádným změnám v definici.
Příklad použití v JavaScriptu
Následující kód dělá totéž, ale přes JavaScript.
Ve výchozím nastavení API vrací všechny pomůcky, ale můžete si vyžádat konkrétní s parametrem prop
.
V příkladu používáme jsonp k vyřešení omezení požadavků mezi weby.
Uvědomte si, že pomocí jsonp nemůžete provádět žádné akce zápisu, takže pokud používáte toto API z JavaScriptu, budete potřebovat: mít proxy. Spustit skript na stejném hostiteli. Nebo načíst malého pomocníka (dosud neimplementovaného) z cílového webu.
apiURL = 'https://translatewiki.net/w/api.php?callback=?';
queryParams = {
action: 'translationaids',
title: 'MediaWiki:Jan/de',
format: 'json'
};
$.getJSON( apiURL, queryParams )
.complete( function( data ) {
console.log( data );
} )
.fail( function () {
console.log( "Failed" );
} );
Pravidla pojmenování a návratové hodnoty
Každá překladatelská nápověda používá svůj jedinečný identifikátor, kterým je alfanumerický řetězec.
Ten nesmí obsahovat diakritiku, speciální znaky, ani znaky -
a *
.
Pole, které vrací každá ze tříd překladatelské nápovědy, zpracovává vývojář, mělo by však splňovat následující obecná doporučení.
Je-li návratovou hodnotou pouze jeden textový řetězec, můžete použít rovnou jako index řetězec value
.
Kód jazyka je pod indexem language
.
Na základě těchto údajů již lze zajistit, aby byl text řádně označkován, ve správném jazyce a také ve správném směru (informace o směrovosti textu je dána jazykem, proto není součástí návratové hodnoty).
Obsahuje-li návratové pole také kód v HTML, bude dostupný pod indexem html
.
Může to být kupř. dokumentace k překládané zprávě, nebo kód s informací o rozdílech.
U navrhovaných překladů, ať už pochází ze strojového překladu nebo překladové paměti, lze použít tyto indexy:
source
,source_language
,target
(cílový jazyk je implicitně stejný jako jazyk překladu)server
: Identifikátor použité služby.quality
: Hodnota v rozmezí [0,1], vyšší hodnota znamená, že kvalita návrhů je velmi dobrá.
**
uloženo jméno příslušného prvku. U zpráv, které pochází ze strojového překladu, nebo překladové paměti je to suggestion
. To je dáno API MediaWiki. Jméno prvku je jinak vidět pouze u výstupu v XML formátu. V JSON formátu se vypíše pouze seznam zpráv.
Seznam standardních modulů překladatelské nápovědy
{{[$1]
|field}} znamená, že návratovou hodnotou indexované buňky je pole.
V PHP to je pole buněk s numerickými indexy a jedním řetězcovým indexem **
. Viz výše.
Třída | ID | Pole | Poznámka |
---|---|---|---|
MessageDefinitionAid | definition |
|
|
CurrentTranslationAid | translation |
|
|
InOtherLanguagesAid | inotherlanguages |
|
Závisí na uživatelském nastavení. |
DocumentationAid | documentation |
| |
MachineTranslationAid | mt |
|
Dostupnost závisí na podpoře párování překladů a dostupnosti externích služeb. |
UpdatedDefinitionAid | definitiondiff |
|
Zobrazení závisí na mediawiki.action.history.diff modulu ResourceLoader. |
TTMServerAid | ttmserver |
| |
SupportAid | support |
|
Webová stránka, kde může uživatel nalézt s dalšími i informace k překládané zprávě. |
InsertablesAid | insertables |
|
Řetězec nepřeložitelného textu, který může být vložen do překladu. Pole říká co se zobrazí uživateli a co se vloží před a po jeho výběru. |
Pro překladatele (hlavní stránka nápovědy )
- Jak se překládá
- Osvědčené postupy
- Statistika a hlášení
- Záruka kvality
- Přehled o stavu překladu zpráv
- Offline překlad
- Slovníček
Pro správce překladů
- Jak připravit stránku k překladu
- Správa překladu stránky
- Překlad nestrukturovaných prvků
- Správa skupin
- Přesun překládané stránky
- Import překladů přes CSV
- Práce se svazky zpráv
Pro systémové administrátory a vývojáře