Help:Extension:Translate/Translation aids/de
Übersetzungshilfen (oder translation helpers) sind Module, die dem Übersetzer beim Übersetzen hilfreiche und notwendige Informationen liefern. Verschiedene Hilfsmittel können Vorschläge aus dem Übersetzungsgedächtnis und der maschinellen Übersetzung, eine Dokumentation zu der Nachricht oder sogar so etwas Grundlegendes wie die Nachrichtendefinition - den zu übersetzenden Text - liefern.
Es gibt einige Überschneidungen zwischen den Hilfsmitteln und den Daten, die von der Nachrichtensammlung bereitgestellt werden, aber in aller Regel stellt die Nachrichtensammlung nur Informationen bereit, die unbedingt benötigt werden, um die Liste der Nachrichten zu präsentieren: Definition, Übersetzung, Status der Übersetzung, letzter Übersetzer (weil man nur Übersetzungen überprüfen kann, die von jemand anderem gemacht wurden) usw.
Translate wird mit vielen Hilfsklassen ausgeliefert. Jede Klasse, die die Klasse TranslationAid erweitert, muss nur eine Methode namens getData
implementieren. Sie sollte die Informationen in strukturiertem Format (verschachtelte Arrays) zurückgeben. Diese Module können entweder direkt aus PHP oder über die WebAPI aufgerufen werden.
Wie man die Übersetzungshilfen innerhalb von MediaWiki nutzen kann
Einfaches Beispiel, wie man eine etwaige Nachrichtendokumentation einer Nachricht erhält.
$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";
Wie man die Übersetzungshilfen-API nutzen kann
Wie bereits oben gesehen, sind Übersetzungshilfen über eine WebAPI verfügbar, die das MediaWiki WebAPI-Framework verwendet. Das Abrufen von Übersetzungshilfen ist so einfach wie ein HTTP-GET für die URL http://translatewiki.net/w/api.php?action=translationaids&title=MediaWiki%3AJan%2Fde. Sie bietet verschiedene Formate, aber JSON und XML sind die beliebtesten. Diese API benötigt keine Authentifizierung, aber einige Übersetzungshilfen wie "inotherlanguages" verwenden Benutzereinstellungen, um zu bestimmen, welche Sprachen verwendet werden sollen. Um diese Hilfe zu verwenden, solltest du dich zuerst anmelden, wie in der MediaWiki WebAPI-Dokumentation beschrieben.
Die zurückgegebenen Daten sollten wie folgt aussehen (dargestellt im hübschen JSON-Format):
{
"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"
}
}
Jedes angeforderte Hilfsmittel hat hier garantiert einen Schlüssel (bis die Anfrage kläglich scheitert), aber während wir auf der PHP-Seite Ausnahmen verwenden, kann auf der JavaScript-Seite jedes Hilfsmittel den Schlüssel "error" mit der Fehlermeldung als Wert gesetzt haben. Ein Beispiel dafür siehst du oben mit definitiondiff
. Es signalisiert, dass es kein Diff anzeigen kann, weil es seit der letzten Übersetzung keine Änderungen an der Definition gab.
JavaScript-Beispiele
Hier ist das Gleiche für JavaScript. Per Voreinstellung gibt die API alle Hilfsmittel zurück, aber du kannst mit dem prop
-Parameter bestimmte anfordern. Im Beispiel verwenden wir JSONP, um Cross-Site-Request-Beschränkungen zu umgehen. Beachte, dass du mit JSONP keine Schreibaktionen ausführen kannst. Wenn du also diese API von JavaScript aus verwendest, musst du: einen Proxy haben; das Skript auf demselben Host ausführen; oder eine kleine Hilfe (noch nicht implementiert) von der Zielsite laden.
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" );
} );
Namenskonvention und Rückgabewerte
Jede Übersetzungshilfe hat einen eindeutigen String-Identifier. Identifier sollten Sonderzeichen vermeiden, insbesondere solche, die in JavaScript-Identifiern nicht gültig sind, wie -
und *
.
Das Array, das von jeder Übersetzungshilfe zurückgegeben wird, bleibt dem Entwickler überlassen, sollte aber einigen allgemeinen Empfehlungen folgen.
Wenn nur ein Textwert zurückgegeben wird, sollte er Wert
als Schlüssel des Feldes verwenden. Die Sprache sollte im Feld language
angegeben werden. Benutzer dieser Daten sollten sicherstellen, dass der Text in HTML und anderswo korrekt mit der angegebenen Sprache und Übersetzungsrichtung (hier nicht angegeben) gekennzeichnet ist. Wenn es eine HTML-Ausgabe gibt, sollte diese mit dem Schlüssel html
verfügbar sein. Beispiele hierfür sind die Dokumentation von Nachrichten und Diffs.
Verschiedene Arten von Übersetzungsvorschlägen wie maschinelle Übersetzung und Übersetzungsgedächtnis sollten diese Schlüssel verwenden, sofern sie sinnvoll sind:
source
,source_language
andtarget
(Zielsprache ist implizit dieselbe wie die Sprache der Übersetzung)server
: Identifier des benutzten Dienstesquality
: Wert im Bereich [0,1], ein höherer Wert bedeutet, dass die Qualität der Vorschläge sehr gut ist.
**
einen Elementnamen enthalten. Für die maschinelle Übersetzung und das Übersetzungsgedächtnis ist dies suggestion
. Dies wird vom MediaWiki-WebAPI-Framework vorgeschrieben. Es ist im XML-Format sichtbar, aber im JSON-Format ist die Ausgabe nur eine Liste.
Liste der Standardhilfen
[field] Bedeutet, dass der Rückgabewert eine Liste ist. In PHP bedeutet dies: Array mit numerischen Indizes + eines mit Schlüssel **
; siehe oben, warum dies benötigt wird.
Klasse | ID | Felder | Anmerkungen |
---|---|---|---|
MessageDefinitionAid | definition |
|
|
CurrentTranslationAid | translation |
|
|
InOtherLanguagesAid | inotherlanguages |
|
Abhängig von den Benutzereinstellungen |
DocumentationAid | documentation |
| |
MachineTranslationAid | mt |
|
Die Verfügbarkeit hängt von der Unterstützung von Sprachpaaren und der Verfügbarkeit externer Dienste ab. |
UpdatedDefinitionAid | definitiondiff |
|
Die Anzeige hängt vom mediawiki.action.history.diff-Resource-Loader-Modul von MediaWiki ab. |
TTMServerAid | ttmserver |
| |
SupportAid | support |
|
Dies ist eine Webseite, an die sich Benutzer wenden können, um Fragen zu dieser Nachricht zu stellen. |
InsertablesAid | insertables |
|
Zeichenketten mit unübersetzbarem Text, der in die Übersetzung eingefügt werden kann. Felder sagen, was dem Benutzer angezeigt werden soll und was vor und nach der Auswahl eingefügt wird. |
<translate> Translators</translate> (<translate> main help page</translate> )
- <translate> How to translate</translate>
- <translate> Best practices</translate>
- <translate> Statistics and reporting</translate>
- <translate> Quality assurance</translate>
- <translate> Message group states</translate>
- <translate> Offline translation</translate>
- <translate> Glossary</translate>
<translate> Translation administrators</translate>
- <translate> How to prepare a page for translation</translate>
- <translate> Page translation administration</translate>
- <translate> Unstructured element translation</translate>
- <translate> Group management</translate>
- <translate> Move translatable page</translate>
- <translate> Import translations via CSV</translate>
- <translate> Working with message bundles</translate>
<translate> Sysadmins and developers</translate>
- <translate> Installation</translate>
- <translate> Configuration</translate>
- <translate> Getting started with development</translate>
- <translate> Developer guide</translate>
- <translate> Extending Translate</translate>
- <translate> Validators</translate>
- <translate> Insertables</translate>
- <translate> Group configuration</translate>
- <translate> Group configuration example</translate>
- <translate> Translation memories</translate>
- <translate> Translation aids</translate>
- <translate> Enabling message bundles</translate>
- <translate> PHP hooks</translate>