Nápověda:Rozšíření:Translate/Konfigurace

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Help:Extension:Translate/Configuration and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎català • ‎dansk • ‎español • ‎français • ‎polski • ‎português • ‎português do Brasil • ‎suomi • ‎čeština • ‎русский • ‎українська • ‎العربية • ‎हिन्दी • ‎বাংলা • ‎தமிழ் • ‎中文 • ‎日本語

Balík jazykových rozšíření MediaWiki vám nabízí vše, co je potřeba k tomu abyste mohli používat Translate – od kódu až po nezbytné instalační procedury. Tato stránka rozebírá do detailu všechny dostupné konfigurační volby pro případ, že potřebujete víc informací, než je uvedeno na stránce o instalaci.

Ukázková konfigurace

Tato konfigurace patří do souboru LocalSettings.php v adresáři s nainstalovanou MediaWiki.

wfLoadExtension( 'Translate' );
$wgGroupPermissions['translator']['translate'] = true;
$wgGroupPermissions['translator']['skipcaptcha'] = true; // Bug 34182: needed with ConfirmEdit
$wgTranslateDocumentationLanguageCode = 'qqq';

# Přidejte, pokud chcete povolit přístup k překladu stránky
$wgGroupPermissions['sysop']['pagetranslation'] = true;

# Soukromé klíče api pro služby strojového překladu
#$wgTranslateTranslationServices['Apertium']['key'] = '';

Uživatelská práva

Rozšíření Translate zavádí nová uživatelská práva:

Uživatelská práva Definice Popis
translate Editace překladu pomocí rozhraní Přeložit Dovoluje uživatelům upravovat překlady.
translate-manage Správa skupin zpráv Dovoluje uživatelům aktualizovat a spravovat skupiny zpráv přes webového rozhraní.
translate-import Importování offline překladů Dovoluje uživatelům přímo kopírovat aktualizované překlady z offline nástrojů přes webové rozhraní (stále nestabilní). Tato skupina je volitelná. Pro import zpráv z externího zdroje není nezbytně nutná.
pagetranslation Označování verzí stránek pro překlad Umožňuje uživatelům spravovat překlad stránek s obsahem.
translate-messagereview Hodnocení překladů Umožňuje uživatelům označit překlady jako zkontrolované.
translate-proofr - Tato skupina má právo translate-messagereview a právo přidat další uživatele do skupiny translate-proofr.
translate-groupreview Změna stavu zpracování skupin zpráv Umožňuje uživatelům změnit stav pracovního postupu skupiny. Tato skupina je volitelná a není nutná, když je ve výchozím nastavení zakázána proměnná $wgTranslateWorkflowStates. Pokud je povoleno, jsou stavy pracovního postupu definovány v proměnné $wgTranslateWorkflowStates.

Konfigurační proměnné

Následující dokumentace je pro vaše pohodlí zkopírována z Translate.php. Možnosti konfigurace se časem mění, takže pokud máte pochybnosti, dokumentace ve vašem Translate.php je nejlepší. Pro záznam je to 2016-04-21.

Tato část nebyla aktualizována, protože Translate byl přesunut na registraci rozšíření. V současné době neexistuje dobrý způsob, jak automaticky vygenerovat tento druh stránky dokumentace od extension.json.

Základní konfigurace

/**
 * Language code for message documentation. Suggested values are qqq or info.
 * If set to false (default), message documentation feature is disabled.
 */
$wgTranslateDocumentationLanguageCode = false;

/**
 * Name of the bot which will invalidate translations and do maintenance
 * for page translation feature. Also used for importing messages from external
 * sources.
 */
$wgTranslateFuzzyBotName = 'FuzzyBot';

/**
 * Add a preference "Do not send me email newsletters" in the email preferences.
 */
$wgTranslateNewsletterPreference = false;

/**
 * Default values for list of languages to show translators as an aid when
 * translating (assistant languages).
 * Each user can override this setting in their preferences.
 * If MediaWiki core has a fallback for this language in Messages*.php, then
 * that fallback language is used, so use this variable only if you want to add more
 * languages to that fallback.
 * This feature works only if the value of the assistant languages
 * preference ('translate-editlangs') is the string 'default'.
 * Example:
 *  $wgTranslateLanguageFallbacks['fi'] = 'sv';
 *  $wgTranslateLanguageFallbacks['sv'] = [ 'da', 'no', 'nn' ];
 */
$wgTranslateLanguageFallbacks = array();

/**
 * Text that will be shown in translations if the translation is outdated.
 * Must be something that does not conflict with actual content.
 */
if ( !defined( 'TRANSLATE_FUZZY' ) ) {
	define( 'TRANSLATE_FUZZY', '!!FUZZY!!' );
}

/**
 * Define various web services that provide translation suggestions.
 *
 * Translation memories are documented in our main documentation.
 * @see https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_memories
 *
 * For Apertium, you should get an API key.
 * @see http://wiki.apertium.org/wiki/Apertium_web_service
 *
 * Yandex translation helper also provides langlimit option to limit total
 * number of suggestions (set to 0 to get all possible translations)
 * and langorder array to sort languages. Yandex translate engine is based on
 * wordnet, generated from search index, so number of indexed websites should be
 * a good heuristic to define the default language order.
 *
 * The machine translation services are provided with the following information:
 * - server ip address
 * - versions of MediaWiki and Translate extension
 * - clients ip address encrypted with $wgProxyKey
 * - source text to translate
 * - private API key if provided
 */
$wgTranslateTranslationServices = array();
$wgTranslateTranslationServices['TTMServer'] = array(
	'database' => false, // Passed to wfGetDB
	'cutoff' => 0.75,
	'type' => 'ttmserver',
	'public' => false,
);
$wgTranslateTranslationServices['Microsoft'] = array(
	'url' => 'http://api.microsofttranslator.com/V2/Http.svc/Translate',
	'key' => null,
	'timeout' => 3,
	'type' => 'microsoft',
);
$wgTranslateTranslationServices['Apertium'] = array(
	'url' => 'http://api.apertium.org/json/translate',
	'pairs' => 'http://api.apertium.org/json/listPairs',
	'key' => null,
	'timeout' => 3,
	'type' => 'apertium',
);
$wgTranslateTranslationServices['Yandex'] = array(
	'url' => 'https://translate.yandex.net/api/v1.5/tr.json/translate',
	'key' => null,
	'pairs' => 'https://translate.yandex.net/api/v1.5/tr.json/getLangs',
	'timeout' => 3,
	'langorder' => array( 'en', 'ru', 'uk', 'de', 'fr', 'pl', 'it', 'es', 'tr' ),
	'langlimit' => 1,
	'type' => 'yandex',
);

/**
 * List of tasks in Special:Translate. If you are only using page translation
 * feature, you might want to disable 'optional' task. Example:
 *  unset($wgTranslateTasks['optional']);
 */
$wgTranslateTasks = array(
	'view' => 'ViewMessagesTask',
	'untranslated' => 'ViewUntranslatedTask',
	'optional' => 'ViewOptionalTask',
	'acceptqueue' => 'AcceptQueueMessagesTask',
	'reviewall' => 'ReviewAllMessagesTask',
	'export-as-po' => 'ExportasPoMessagesTask',
	'export-to-file' => 'ExportToFileMessagesTask',
	'custom' => 'CustomFilteredMessagesTask',
);

/**
 * Experimental support for an "Ask" help button.
 * Might change into a hook later on.
 * This is an array with keys page, url and params.
 * - page is a title of a local wiki page
 * - url is an URL to use as is (e.g. an issue tracker submission form)
 *   which will override the page if set
 * - params is an array of key-value pairs of request params
 * -- each param value can contain the variable %MESSAGE%
 *    which will be replaced with the full page name.
 * @since 2011-03-11
 */
$wgTranslateSupportUrl = false;

/**
 * Like $wgTranslateSupportUrl, but for a specific namespace.
 * Each $wgTranslateSupportUrl-like array needs to be the value
 * assigned to the numerical ID of a namespace of the wiki.
 * @since 2015.09
 */
$wgTranslateSupportUrlNamespace = array();

/**
 * When unprivileged users open a translation editor, they will
 * see a message stating that a special permission is needed for translating
 * messages. If this variable is defined, there is a button which will
 * take the user to that page to ask for permission.
 * The target needs to be reiterated with the second variable to have
 * the same result with sandbox enabled where users can't enter the sandbox.
 */
$wgTranslatePermissionUrl = 'Project:Translator';
$wgTranslateSecondaryPermissionUrl = 'Project:Translator';

/**
 * If set, displays a warning and does not allow user to move
 * translatable pages having more subpages than this value
 */
$wgTranslatePageMoveLimit = 500;

Funkce překladu stránky

/**
 * Enable page translation feature.
 *
 * Page translation feature allows structured translation of wiki pages
 * with simple markup and automatic tracking of changes.
 *
 * @defgroup PageTranslation Page Translation
 * @see https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_administration
 */
$wgEnablePageTranslation = true;

/**
 * Number for the Translations namespace. Change this if it conflicts with
 * other namespace in your wiki.
 */
$wgPageTranslationNamespace = 1198;

/**
 * If set to true, when a user selects an interface language via ULS (Universal
 * Language Selector), if the current page is a translatable page or a translation
 * page then the user is also redirected to the corresponding translation page
 * in the selected language.
 *
 * The language of the translation pages visited afterwards will still depend on the
 * links followed (it will be the interface language only if the links use the
 * Special:MyLanguage syntax).
 * @since 2013-03-10
 */
$wgTranslatePageTranslationULS = false;

Konfigurace skupiny zpráv

Následující jména konfiguračních proměnných byla změněna:

  • TranslateBlacklist --> TranslateDisabledTargetLanguages
  • TranslateAuthorBlacklist --> TranslateAuthorExclusionList
  • TranslateCheckBlacklist --> TranslateValidationExclusionFile

Staré proměnné budou podporovány pro verzi MLEB 2021.07, ale odstraněny ve verzi MLEB 2021.10.

/**
 * Two-dimensional array of languages that cannot be translated.
 * Input can be exact group name, first part before '-' or '*' for all.
 * Second dimension should be language code mapped to reason for disabling.
 * Reason is parsed as wikitext.
 *
 * Example:
 * $wgTranslateDisabledTargetLanguages = array(
 *     '*' => array( // All groups
 *         'en' => 'English is the source language.',
 *     ),
 *     'core' => array( // Exact group
 *         'mul' => 'Not a real language.',
 *     ),
 *     'ext' => array( // Wildcard-like group
 *         'mul' => 'Not a real language',
 *     ),
 * );
 */

$wgTranslateDisabledTargetLanguages = array();

/**
 * File containing checks that are to be skipped. See
 * https://gerrit.wikimedia.org/r/plugins/gitiles/translatewiki/+/refs/heads/master/groups/validation-exclusion-list.php
 * for example.
 */
$wgTranslateValidationExclusionFile = false;

/**
 * Two-dimensional array of rules that exclude certain authors from appearing
 * in the exports. This is useful for keeping bots and people doing maintenance
 * work in translations not to appear besides real translators everywhere.
 *
 * Rules are arrays, where first element is type: white or black. Inclusion
 * always overrules exclusion. Second element should be a valid pattern that
 * can be given a preg_match(). It will be matched against string of format
 * "group-id;language;author name", without quotes.
 * As an example by default we have rule that ignores all authors whose name
 * ends in a bot for all languages and all groups.
 */
$wgTranslateAuthorExclusionList = array();
$wgTranslateAuthorExclusionList[] = array( 'black', '/^.*;.*;.*Bot$/Ui' );

/**
 * List of namespace that contain messages. No talk namespaces.
 * @see https://www.mediawiki.org/wiki/Help:Extension:Translate/Group_configuration
 */
$wgTranslateMessageNamespaces = array();

/**
 * CC = Custom classes.
 * Custom classes can register themselves here.
 * Key is always the group id, while the value is an message group object
 * or callable function.
 * @deprecated Use TranslatePostInitGroups hook instead.
 */
$wgTranslateCC = array();

/**
 * Location in the filesystem to which paths are relative in custom groups.
 */
$wgTranslateGroupRoot = '/var/www/externals';

/**
 * The newest and recommended way of adding custom groups is YAML files.
 * See examples under Translate/groups
 * Usage example:
 *  $wgTranslateGroupFiles[] = "$IP/extensions/Translate/groups/Shapado/Shapado.yml";
 */
$wgTranslateGroupFiles = array();

/**
 * List of possible message group review workflow states and properties
 * for each state.
 * The currently supported properties are:
 * * color: the color that is used for displaying the state in the tables.
 * * right: additional right that is needed to set the state.
 * Users who have the translate-groupreview right can set this in
 * Special:Translate.
 * The state is visible in Special:Translate, Special:MessageGroupStats and
 * Special:LanguageStats.
 * If the value is false, the workflow states feature is disabled.
 * State name can be up to 32 characters maximum.
 * Example:
 * $wgTranslateWorkflowStates = array(
 *      'new' => array( 'color' => 'FF0000' ), // red
 *      'needs_proofreading' => array( 'color' => '0000FF' ), // blue
 *      'ready' => array( 'color' => 'FFFF00' ), // yellow
 *      'published' => array(
 *          'color' => '00FF00', // green
 *          'right' => 'centralnotice-admin',
 *      ),
 * );
 */
$wgTranslateWorkflowStates = false;

/**
 * Map from deprecated group IDs to their current ID
 * Example value: array( 'core' => 'mediawiki-core' )
 */
$wgTranslateGroupAliases = array();

Konfigurace související s nastavením systému

/**
 * Set location of cache files. Defaults to $wgCacheDirectory.
 */
$wgTranslateCacheDirectory = false;

/**
 * Configures how the message index is stored.
 * The other backends need $wgCacheDirectory to be functional.
 */
$wgTranslateMessageIndex = array( 'DatabaseMessageIndex' );
// $wgTranslateMessageIndex = array( 'SerializedMessageIndex' );
// $wgTranslateMessageIndex = array( 'CDBMessageIndex' );

/**
 * If you have lots of message groups, especially file based ones, and the
 * message index rebuilding gets slow, set this to true to delay the rebuilding
 * via JobQueue. This only makes sense if you have configured jobs to be
 * processed outside of requests via cron or similar.
 * @since 2012-05-03
 * @deprecated Since MLEB 2021.10. Always inserted into the JobQueue
 */
$wgTranslateDelayedMessageIndexRebuild = false;

PHPlot

Od MLEB 2020.10. již PHPlot není nutný. Byl nahrazen řešením založeným na JavaScriptu: Chart.js
/**
 * For Special:TranslationStats PHPlot is needed to produce graphs.
 * Set this the location of phplot.php.
 */
$wgTranslatePHPlot = false;

/**
 * The default font for PHPlot for drawing text. Only used if the automatic
 * best font selection fails. The automatic best font selector uses language
 * code to call fc-match program. If you have open_basedir restriction or
 * safe-mode, using the found font is likely to fail. In this case you need
 * to change the code to use hard-coded font, or copy fonts to location PHP
 * can access them, and make sure fc-match returns only those fonts.
 */
$wgTranslatePHPlotFont = '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf';

Ovladač YAML

/**
 * Currently supported YAML drivers are phpyaml, spyc and syck.
 *
 * For phpyaml see https://php.net/book.yaml
 *
 * For syck we're shelling out to perl. So you need:
 *
 * * At least perl 5.8 (find out what you have by running "perl -v")
 * * Install these modules from CPAN
 *   * YAML::Syck
 *   * PHP::Serialization.
 *   * File::Slurp
 *
 * You should be able to do this with:
 *   for module in 'YAML::Syck' 'PHP::Serialization' 'File::Slurp'; do cpanp -i $module; done
 *
 * For the shell to work, you also need an en.UTF-8 locale installed on your system.
 * add a line "en.UTF-8" to your /etc/locale.gen or uncomment an existing one and run locale-gen
 * if you do not have it already.
 *
 * phpyaml is the fastest and based on libyaml so the output should be most
 * compatible. spyc output format is least compatible. syck is slowest but
 * almost as good as phpyaml.
 */
$wgTranslateYamlLibrary = 'spyc';

Sandbox

/**
 * Whether to allow users to sign up via a sandbox. Sandboxed users cannot do
 * much until approved and thus they can be get rid of easily.
 * @since 2013.04
 */
$wgTranslateUseSandbox = false;

/**
 * To which group the translators are promoted. If left at false, they will just
 * be removed from sandbox and become normal users.
 * @since 2013.04
 */
$wgTranslateSandboxPromotedGroup = false;

/**
 * List of page names to always suggest for sandboxed users.
 * @since 2013.10
 */
$wgTranslateSandboxSuggestions = array();

/**
 * Maximum number of translations a user can make in the sandbox.
 * @since 2013.10
 */
$wgTranslateSandboxLimit = 20;

Netříděné

/**
 * Pre-save transform for message pages. MediaWiki does this by default
 * (including for pages in the MediaWiki-namespace). By setting this to
 * false it allows users to put untransformed syntax such as "~~~~" into
 * a page without having them be transformed upon save.
 */
$wgTranslateUsePreSaveTransform = false;

/**
 * Default action for the RecentChanges filter, which makes it possible to filter
 * translations away or show them only.
 * Possible values: ('noaction', 'only', 'filter', 'site')
 */
$wgTranslateRcFilterDefault = 'filter';

/**
 * Set this to config like $wgTranslateTranslationServices if you want to run
 * SolrTTMServer tests.
 * @since 2013-01-04
 */
$wgTranslateTestTTMServer = null;

/**
 * List of user names that are allowed to alter their privileges and do other
 * things. Used for supporting integration testing.
 * @since 2013.10
 */
$wgTranslateTestUsers = array();

Odstraňování problémů

Překladová stránka je prázdná nebo se zobrazuje chyba „Nevyvážená ‎<translate> značka“

Za předpokladu, že existuje uzavírací značka ‎</translate>, je zdrojová stránka příliš velká. K tomu dochází u některých překladů, pokud je velikost zdrojové stránky poblíž 50 kilobajtů. Zkraťte stránku nebo nastavením pcre.backtrack_limit zvyšte

ini_set( 'pcre.backtrack_limit', 400000 );

v LocalSettings.php nebo

pcre.backtrack_limit=400000 

v konfiguraci PHP (php.ini).

V režimu TUX (nové uživatelské rozhraní) se nezobrazují žádné zprávy

Pokud jste přepsali $wgTranslateTasks, ujistěte se, že úkol custom z něj není vyloučen.

Nástroj se nenačte ve Special:Translate

Pokud uvidíte něco jako tohle s nekonečným "Načítání zpráv ..." (Loading messages...), pak ResourceLoader je porušeno: nastavte $wgResourceLoaderMaxQueryLength = 1024; nebo nižší, dokud to nebude fungovat.

Pokud to nestačí, pamatovali jste si na instalaci a povolení UniversalLanguageSelector ?

Uložení překladu se nezdařilo s Unknown error: "tpt-unknown-page"

K tomu dochází, když byla stránka označena k překladu, ale úloha na pozadí ještě nebyla zpracována. V tomto případě můžete spustit frontu úloh ručně nebo ještě lépe; nastavte nepřetržitý běh úloh, jak je popsáno v Příručka:Fronta úloh . Pokud to problém nevyřeší, zkuste spustit php extensions/Translate/scripts/createMessageIndex.php.