本文整理汇总了PHP中TranslateUtils::getLanguageName方法的典型用法代码示例。如果您正苦于以下问题:PHP TranslateUtils::getLanguageName方法的具体用法?PHP TranslateUtils::getLanguageName怎么用?PHP TranslateUtils::getLanguageName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TranslateUtils
的用法示例。
在下文中一共展示了TranslateUtils::getLanguageName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getMessageParameters
public function getMessageParameters()
{
$params = parent::getMessageParameters();
$type = $this->entry->getFullType();
if ($type === 'translationreview/message') {
$targetPage = $this->makePageLink($this->entry->getTarget(), array('oldid' => $params[3]));
$params[2] = Message::rawParam($targetPage);
} elseif ($type === 'translationreview/group') {
/*
* - 3: language code
* - 4: label of the message group
* - 5: old state
* - 6: new state
*/
$uiLanguage = $this->context->getLanguage();
$language = $params[3];
$targetPage = $this->makePageLinkWithText($this->entry->getTarget(), $params[4], array('language' => $language));
$params[2] = Message::rawParam($targetPage);
$params[3] = TranslateUtils::getLanguageName($language, $uiLanguage->getCode());
$params[5] = $this->formatStateMessage($params[5]);
$params[6] = $this->formatStateMessage($params[6]);
} elseif ($type === 'translatorsandbox/rejected') {
// No point linking to the user page which cannot have existed
$params[2] = $this->entry->getTarget()->getText();
} elseif ($type === 'translatorsandbox/promoted') {
// Gender for the target
$params[3] = User::newFromId($params[3])->getName();
}
return $params;
}
示例2: doHeader
protected function doHeader( MessageCollection $collection ) {
global $wgSitename, $wgTranslateDocumentationLanguageCode;
$code = $collection->code;
$name = TranslateUtils::getLanguageName( $code );
$native = TranslateUtils::getLanguageName( $code, true );
if ( $wgTranslateDocumentationLanguageCode ) {
$docu = "\n * See the $wgTranslateDocumentationLanguageCode 'language' for message documentation incl. usage of parameters";
} else {
$docu = '';
}
$authors = $this->doAuthors( $collection );
$output = <<<PHP
/** $name ($native)
* $docu
* To improve a translation please visit http://$wgSitename
*
* @ingroup Language
* @file
*
$authors */
PHP;
return $output;
}
示例3: doHeader
protected function doHeader(MessageCollection $collection)
{
global $wgSitename;
$code = $collection->code;
$name = TranslateUtils::getLanguageName($code);
$native = TranslateUtils::getLanguageName($code, $code);
$output = "# Messages for {$name} ({$native})\n";
$output .= "# Exported from {$wgSitename}\n\n";
return $output;
}
示例4: doHeader
/**
* @param $collection MessageCollection
* @return string
*/
protected function doHeader(MessageCollection $collection)
{
global $wgSitename;
global $wgTranslateYamlLibrary;
$code = $collection->code;
$name = TranslateUtils::getLanguageName($code);
$native = TranslateUtils::getLanguageName($code, $code);
$output = "# Messages for {$name} ({$native})\n";
$output .= "# Exported from {$wgSitename}\n";
if (isset($wgTranslateYamlLibrary)) {
$output .= "# Export driver: {$wgTranslateYamlLibrary}\n";
}
return $output;
}
示例5: getMessageParameters
public function getMessageParameters()
{
$params = parent::getMessageParameters();
$legacy = $this->entry->getParameters();
$type = $this->entry->getFullType();
switch ($type) {
case 'pagetranslation/mark':
$revision = $legacy['revision'];
$targetPage = $this->makePageLink($this->entry->getTarget(), array('oldid' => $revision));
$params[2] = Message::rawParam($targetPage);
break;
case 'pagetranslation/moveok':
case 'pagetranslation/movenok':
case 'pagetranslation/deletefnok':
case 'pagetranslation/deletelnok':
$target = $legacy['target'];
$moveTarget = $this->makePageLink(Title::newFromText($target));
$params[3] = Message::rawParam($moveTarget);
break;
case 'pagetranslation/prioritylanguages':
$params[3] = $legacy['force'];
$languages = $legacy['languages'];
if ($languages !== false) {
$lang = $this->context->getLanguage();
$languages = array_map('trim', preg_split('/,/', $languages, -1, PREG_SPLIT_NO_EMPTY));
$languages = array_map(function ($code) use($lang) {
return TranslateUtils::getLanguageName($code, $lang->getCode());
}, $languages);
$params[4] = $lang->listToText($languages);
}
break;
case 'pagetranslation/associate':
case 'pagetranslation/dissociate':
$params[3] = $legacy['aggregategroup'];
break;
}
return $params;
}
示例6: buttonHack
/**
* Replace the normal save button with one that says if you are editing
* message documentation to try to avoid accidents.
* Hook: EditPageBeforeEditButtons
*/
static function buttonHack(EditPage $editpage, &$buttons, $tabindex)
{
$handle = new MessageHandle($editpage->getTitle());
if (!$handle->isValid()) {
return true;
}
$context = $editpage->getArticle()->getContext();
if ($handle->isDoc()) {
$langCode = $context->getLanguage()->getCode();
$name = TranslateUtils::getLanguageName($handle->getCode(), $langCode);
$accessKey = $context->msg('accesskey-save')->plain();
$temp = array('id' => 'wpSave', 'name' => 'wpSave', 'type' => 'submit', 'tabindex' => ++$tabindex, 'value' => $context->msg('translate-save', $name)->text(), 'accesskey' => $accessKey, 'title' => $context->msg('tooltip-save')->text() . ' [' . $accessKey . ']');
$buttons['save'] = Xml::element('input', $temp, '');
}
try {
$supportUrl = SupportAid::getSupportUrl($handle->getTitle());
} catch (TranslationHelperException $e) {
return true;
}
$temp = array('id' => 'wpSupport', 'name' => 'wpSupport', 'type' => 'button', 'tabindex' => ++$tabindex, 'value' => $context->msg('translate-js-support')->text(), 'title' => $context->msg('translate-js-support-title')->text(), 'data-load-url' => $supportUrl, 'onclick' => "window.open( jQuery(this).attr('data-load-url') );");
$buttons['ask'] = Html::element('input', $temp, '');
return true;
}
示例7: doHeader
/**
* @param $collection MessageCollection
* @return string
*/
protected function doHeader(MessageCollection $collection)
{
if (isset($this->extra['header'])) {
$output = $this->extra['header'];
} else {
global $wgSitename;
$code = $collection->code;
$name = TranslateUtils::getLanguageName($code);
$native = TranslateUtils::getLanguageName($code, $code);
$output = "# Messages for {$name} ({$native})\n";
$output .= "# Exported from {$wgSitename}\n";
}
return $output;
}
示例8: outputIntroduction
/**
* Output something helpful to guide the confused user.
*/
protected function outputIntroduction() {
global $wgOut, $wgLang, $wgUser;
$linker = class_exists( 'DummyLinker' ) ? new DummyLinker : new Linker;
$languageName = TranslateUtils::getLanguageName( $this->target, false, $wgLang->getCode() );
$rcInLangLink = $linker->link(
SpecialPage::getTitleFor( 'Translate', '!recent' ),
wfMsgHtml( 'languagestats-recenttranslations' ),
array(),
array(
'task' => $wgUser->isAllowed( 'translate-messagereview' ) ? 'acceptqueue' : 'reviewall',
'language' => $this->target
)
);
$out = wfMessage( 'languagestats-stats-for', $languageName )->rawParams( $rcInLangLink )->parseAsBlock();
$wgOut->addHTML( $out );
}
示例9: showTranslations
/**
* Builds a table with all translations of $title.
*
* @param $title Title (default: null)
* @return void
*/
function showTranslations(Title $title)
{
global $wgOut, $wgUser, $wgLang;
$sk = $wgUser->getSkin();
$namespace = $title->getNamespace();
$message = $title->getDBkey();
$inMessageGroup = TranslateUtils::messageKeyToGroup($title->getNamespace(), $title->getText());
if (!$inMessageGroup) {
$wgOut->addWikiMsg('translate-translations-no-message', $title->getPrefixedText());
return;
}
$dbr = wfGetDB(DB_SLAVE);
$res = $dbr->select('page', array('page_namespace', 'page_title'), array('page_namespace' => $namespace, 'page_title ' . $dbr->buildLike("{$message}/", $dbr->anyString())), __METHOD__, array('ORDER BY' => 'page_title', 'USE INDEX' => 'name_title'));
if (!$res->numRows()) {
$wgOut->addWikiMsg('translate-translations-no-message', $title->getPrefixedText());
return;
} else {
$wgOut->addWikiMsg('translate-translations-count', $wgLang->formatNum($res->numRows()));
}
// Normal output.
$titles = array();
foreach ($res as $s) {
$titles[] = $s->page_title;
}
$pageInfo = TranslateUtils::getContents($titles, $namespace);
$tableheader = Xml::openElement('table', array('class' => 'mw-sp-translate-table sortable'));
$tableheader .= Xml::openElement('tr');
$tableheader .= Xml::element('th', null, wfMsg('allmessagesname'));
$tableheader .= Xml::element('th', null, wfMsg('allmessagescurrent'));
$tableheader .= Xml::closeElement('tr');
// Adapted version of TranslateUtils:makeListing() by Nikerabbit.
$out = $tableheader;
$canTranslate = $wgUser->isAllowed('translate');
$ajaxPageList = array();
$historyText = " <sup>" . wfMsgHtml('translate-translations-history-short') . "</sup> ";
foreach ($res as $s) {
$key = $s->page_title;
$tTitle = Title::makeTitle($s->page_namespace, $key);
$ajaxPageList[] = $tTitle->getPrefixedDBkey();
$code = $this->getCode($s->page_title);
$text = TranslateUtils::getLanguageName($code, false, $wgLang->getCode()) . " ({$code})";
$text = htmlspecialchars($text);
if ($canTranslate) {
$tools['edit'] = TranslationHelpers::ajaxEditLink($tTitle, $text);
} else {
$tools['edit'] = $sk->link($tTitle, $text);
}
$tools['history'] = $sk->link($tTitle, $historyText, array('action', 'title' => wfMsg('history-title', $tTitle->getPrefixedDBkey())), array('action' => 'history'));
if (TranslateEditAddons::isFuzzy($tTitle)) {
$class = 'orig';
} else {
$class = 'def';
}
$leftColumn = $tools['history'] . $tools['edit'];
$out .= Xml::tags('tr', array('class' => $class), Xml::tags('td', null, $leftColumn) . Xml::tags('td', array('lang' => $code, 'dir' => Language::factory($code)->getDir()), TranslateUtils::convertWhiteSpaceToHTML($pageInfo[$key][0])));
}
$out .= Xml::closeElement('table');
$wgOut->addHTML($out);
$vars = array('trlKeys' => $ajaxPageList);
$wgOut->addScript(Skin::makeVariablesScript($vars));
}
示例10: setSubtitle
/**
* Set a subtitle like "Manage > FreeCol (open source game) > German"
* based on group and language code. The language part is not shown if
* it is 'en', and all three possible parts of the subtitle are linked.
*
* @param $group MessageGroup
* @param $code \string Language code.
*/
protected function setSubtitle($group, $code)
{
global $wgLang;
$links[] = $this->skin->link($this->getTitle(), wfMsgHtml('translate-manage-subtitle'));
$links[] = $this->skin->link($this->getTitle(), htmlspecialchars($group->getLabel()), array(), array('group' => $group->getId()));
// Do not show language part for English.
if ($code !== 'en') {
$langname = TranslateUtils::getLanguageName($code, false, $wgLang->getCode());
$links[] = $this->skin->link($this->getTitle(), htmlspecialchars($langname), array(), array('group' => $group->getId(), 'language' => $code));
}
$this->out->setSubtitle(implode(' > ', $links));
}
示例11: messageSelector
protected function messageSelector()
{
$nondefaults = $this->opts->getChangedValues();
$output = Html::openElement('div', array('class' => 'row tux-messagetable-header'));
$output .= Html::openElement('div', array('class' => 'nine columns'));
$output .= Html::openElement('ul', array('class' => 'row tux-message-selector'));
$tabs = array('default' => '', 'translated' => 'translated', 'untranslated' => 'untranslated');
$ellipsisOptions = array('outdated' => 'fuzzy');
$selected = $this->opts->getValue('filter');
$keys = array_keys($tabs);
if (in_array($selected, array_values($ellipsisOptions))) {
$key = $keys[count($keys) - 1];
$ellipsisOptions = array($key => $tabs[$key]);
// Remove the last tab
unset($tabs[$key]);
$tabs = array_merge($tabs, array('outdated' => $selected));
} elseif (!in_array($selected, array_values($tabs))) {
$selected = '';
}
$container = Html::openElement('ul', array('class' => 'column tux-message-selector'));
foreach ($ellipsisOptions as $optKey => $optValue) {
$container .= $this->ellipsisSelector($optKey, $optValue);
}
$sourcelanguage = $this->opts->getValue('sourcelanguage');
$sourcelanguage = TranslateUtils::getLanguageName($sourcelanguage);
foreach ($tabs as $tab => $filter) {
// Messages for grepping:
// tux-sst-default
// tux-sst-translated
// tux-sst-untranslated
// tux-sst-outdated
$tabClass = "tux-sst-{$tab}";
$taskParams = array('filter' => $filter) + $nondefaults;
ksort($taskParams);
$href = $this->getTitle()->getLocalUrl($taskParams);
if ($tab === 'default') {
$link = Html::element('a', array('href' => $href), $this->msg($tabClass)->text());
} else {
$link = Html::element('a', array('href' => $href), $this->msg($tabClass, $sourcelanguage)->text());
}
if ($selected === $filter) {
$tabClass = $tabClass . ' selected';
}
$output .= Html::rawElement('li', array('class' => array('column', $tabClass), 'data-filter' => $filter, 'data-title' => $tab), $link);
}
// More column
$output .= Html::openElement('li', array('class' => 'column more')) . '...' . $container . Html::closeElement('li');
$output .= Html::closeElement('ul');
$output .= Html::closeElement('div');
$output .= Html::closeElement('div');
return $output;
}
示例12: languages
/**
* @param $data
* @param $params
* @param $parser Parser
* @return string
*/
public static function languages($data, $params, $parser)
{
$currentTitle = $parser->getTitle();
// Check if this is a source page or a translation page
$page = TranslatablePage::newFromTitle($currentTitle);
if ($page->getMarkedTag() === false) {
$page = TranslatablePage::isTranslationPage($currentTitle);
}
if ($page === false || $page->getMarkedTag() === false) {
return '';
}
$status = $page->getTranslationPercentages();
if (!$status) {
return '';
}
// If priority languages have been set always show those languages
$priorityLangs = TranslateMetadata::get($page->getMessageGroupId(), 'prioritylangs');
$priorityForce = TranslateMetadata::get($page->getMessageGroupId(), 'priorityforce');
$filter = null;
if (strlen($priorityLangs) > 0) {
$filter = array_flip(explode(',', $priorityLangs));
}
if ($filter !== null) {
// If translation is restricted to some languages, only show them
if ($priorityForce === 'on') {
// Do not filter the source language link
$filter[$page->getMessageGroup()->getSourceLanguage()] = true;
$status = array_intersect_key($status, $filter);
}
foreach ($filter as $langCode => $value) {
if (!isset($status[$langCode])) {
// We need to show all priority languages even if no translation started
$status[$langCode] = 0;
}
}
}
// Fix title
$pageTitle = $page->getTitle();
// Sort by language code, which seems to be the only sane method
ksort($status);
// This way the parser knows to fragment the parser cache by language code
$userLangCode = $parser->getOptions()->getUserLang();
$userLangDir = $parser->getOptions()->getUserLangObj()->getDir();
// Should call $page->getMessageGroup()->getSourceLanguage(), but
// group is sometimes null on WMF during page moves, reason unknown.
// This should do the same thing for now.
$sourceLanguage = $pageTitle->getPageLanguage()->getCode();
$languages = array();
foreach ($status as $code => $percent) {
// Get autonyms
$name = TranslateUtils::getLanguageName($code, $code);
$name = htmlspecialchars($name);
// Unlikely, but better safe
// Add links to other languages
$suffix = $code === $sourceLanguage ? '' : "/{$code}";
$targetTitleString = $pageTitle->getDBkey() . $suffix;
$subpage = Title::makeTitle($pageTitle->getNamespace(), $targetTitleString);
$classes = array();
if ($code === $userLangCode) {
$classes[] = 'mw-pt-languages-ui';
}
if ($currentTitle->equals($subpage)) {
$classes[] = 'mw-pt-languages-selected';
$classes = array_merge($classes, self::tpProgressIcon($percent));
$name = Html::rawElement('span', array('class' => $classes), $name);
} elseif ($subpage->isKnown()) {
$pagename = $page->getPageDisplayTitle($code);
if (!is_string($pagename)) {
$pagename = $subpage->getPrefixedText();
}
$classes = array_merge($classes, self::tpProgressIcon($percent));
$title = wfMessage('tpt-languages-nonzero')->params($pagename)->numParams(100 * $percent)->text();
$attribs = array('title' => $title, 'class' => $classes);
$name = Linker::linkKnown($subpage, $name, $attribs);
} else {
/* When language is included because it is a priority language,
* but translation does not yet exists, link directly to the
* translation view. */
$specialTranslateTitle = SpecialPage::getTitleFor('Translate');
$params = array('group' => $page->getMessageGroupId(), 'language' => $code, 'task' => 'view');
$classes[] = 'new';
// For red link color
$attribs = array('title' => wfMessage('tpt-languages-zero')->text(), 'class' => $classes);
$name = Linker::link($specialTranslateTitle, $name, $attribs, $params);
}
$languages[] = $name;
}
// dirmark (rlm/lrm) is added, because languages with RTL names can
// mess the display
$lang = Language::factory($userLangCode);
$sep = wfMessage('tpt-languages-separator')->inLanguage($lang)->escaped();
$sep .= $lang->getDirMark();
$languages = implode($sep, $languages);
$out = Html::openElement('div', array('class' => 'mw-pt-languages noprint', 'lang' => $userLangCode, 'dir' => $userLangDir));
//.........这里部分代码省略.........
示例13: header
/**
* @param $code string
* @param $authors array
* @return string
*/
protected function header($code, $authors)
{
global $wgSitename;
$name = TranslateUtils::getLanguageName($code);
$native = TranslateUtils::getLanguageName($code, $code);
$authorsList = $this->authorsList($authors);
/** @cond doxygen_bug */
return <<<EOT
/** Messages for {$name} ({$native})
* Exported from {$wgSitename}
*
{$authorsList}
*/
var I18n = {
EOT;
/** @endcond */
}
示例14: languages
/**
* @param $data
* @param $params
* @param $parser Parser
* @return string
*/
public static function languages($data, $params, $parser)
{
$title = $parser->getTitle();
// Check if this is a source page or a translation page
$page = TranslatablePage::newFromTitle($title);
if ($page->getMarkedTag() === false) {
$page = TranslatablePage::isTranslationPage($title);
}
if ($page === false || $page->getMarkedTag() === false) {
return '';
}
$status = $page->getTranslationPercentages();
if (!$status) {
return '';
}
// Fix title
$title = $page->getTitle();
// Sort by language code, which seems to be the only sane method
ksort($status);
$options = $parser->getOptions();
if (method_exists($options, 'getUserLang')) {
$userLangCode = $options->getUserLang();
} else {
// Backward compat for MediaWiki 1.17
global $wgLang;
$userLangCode = $wgLang->getCode();
}
// BC for <1.19
$linker = class_exists('DummyLinker') ? new DummyLinker() : new Linker();
$languages = array();
foreach ($status as $code => $percent) {
$name = TranslateUtils::getLanguageName($code, false, $userLangCode);
$name = htmlspecialchars($name);
// Unlikely, but better safe
/* Percentages are too accurate and take more
* space than simple images */
$percent *= 100;
if ($percent < 20) {
$image = 1;
} elseif ($percent < 40) {
$image = 2;
} elseif ($percent < 60) {
$image = 3;
} elseif ($percent < 80) {
$image = 4;
} else {
$image = 5;
}
$percent = Xml::element('img', array('src' => TranslateUtils::assetPath("resources/images/prog-{$image}.png"), 'alt' => "{$percent}%", 'title' => "{$percent}%", 'width' => '9', 'height' => '9'));
// Add links to other languages
$suffix = $code === 'en' ? '' : "/{$code}";
$_title = Title::makeTitle($title->getNamespace(), $title->getDBkey() . $suffix);
if ($parser->getTitle()->getText() === $_title->getText()) {
$name = Html::rawElement('span', array('class' => 'mw-pt-languages-selected'), $name);
$languages[] = "{$name} {$percent}";
} else {
if ($code === $userLangCode) {
$name = Html::rawElement('span', array('class' => 'mw-pt-languages-ui'), $name);
}
$languages[] = $linker->linkKnown($_title, "{$name} {$percent}");
}
}
$legend = wfMsg('tpt-languages-legend');
$languages = implode(wfMsg('tpt-languages-separator'), $languages);
return <<<FOO
<div class="mw-pt-languages">
<table><tbody>
<tr valign="top">
<td class="mw-pt-languages-label"><b>{$legend}</b></td>
<td class="mw-pt-languages-list">{$languages}</td></tr>
</tbody></table>
</div>
FOO;
}
示例15: writeReal
/**
* @param MessageCollection $collection
* @return string
*/
protected function writeReal(MessageCollection $collection)
{
$mangler = $this->group->getMangler();
$code = $collection->getLanguage();
$block = $this->generateMessageBlock($collection, $mangler);
if ($block === false) {
return '';
}
// Ugly code, relies on side effects
// Avoid parsing stuff with fake language code
// Premature optimization
$this->read('mul');
$filename = $this->group->getSourceFilePath($code);
$cache =& self::$cache[$filename];
// Generating authors
if (isset($cache['sections'][$code])) {
// More premature optimization
$fromFile = self::parseAuthorsFromString($cache['sections'][$code]);
$collection->addCollectionAuthors($fromFile);
}
$authors = $collection->getAuthors();
$authors = $this->filterAuthors($authors, $code);
$authorList = '';
foreach ($authors as $author) {
$authorList .= "\n * @author {$author}";
}
// And putting all together
$name = TranslateUtils::getLanguageName($code);
$native = TranslateUtils::getLanguageName($code, $code);
$section = <<<PHP
/** {$name} ({$native}){$authorList}
*/
\$messages['{$code}'] = array({$block});
PHP;
// Store the written part, so that when next language is called,
// the new version will be used (instead of the old parsed version
$cache['sections'][$code] = $section;
// Make a copy we can alter
$sections = $cache['sections'];
$priority = array();
global $wgTranslateDocumentationLanguageCode;
$codes = array(0, $this->group->getSourceLanguage(), $wgTranslateDocumentationLanguageCode);
foreach ($codes as $pcode) {
if (isset($sections[$pcode])) {
$priority[] = $sections[$pcode];
unset($sections[$pcode]);
}
}
ksort($sections);
return implode("\n\n", $priority) . "\n\n" . implode("\n\n", $sections) . "\n";
}