Amire80 has uploaded a new change for review.
https://gerrit.wikimedia.org/r/172501
Change subject: WIP: Add new grammar forms for language names in Russian
......................................................................
WIP: Add new grammar forms for language names in Russian
CLDR provides translated language names. They are useful for showing
names by themselves in menus and lists, but they can't be added
to Russian sentences, because they need to be declined, so a message like
"This page is not available in the $1 language" is hard to localize.
This patch adds a new case for Russian - "languageadverb".
(As its name says, it's not actually a grammatical case,
but a transformation to an adverbial expression).
This covers most lot of the languages that MediaWiki supports.
Such patches will be needed for other languages as well.
TODO, in further patch sets here: a few more word types need
to be covered, for example two-word language names like
"бразильский португальский" ("Brazilian Portuguese").
Change-Id: Ib6a0afa5c3736f8b9b2e121cd752c53ee50fad75
---
M languages/classes/LanguageRu.php
M tests/phpunit/languages/LanguageRuTest.php
2 files changed, 49 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/01/172501/1
diff --git a/languages/classes/LanguageRu.php b/languages/classes/LanguageRu.php
index 226e313..4f27d84 100644
--- a/languages/classes/LanguageRu.php
+++ b/languages/classes/LanguageRu.php
@@ -44,8 +44,8 @@
return $wgGrammarForms['ru'][$case][$word];
}
- # These rules are not perfect, but they are currently only used
for Wikimedia
- # site names so it doesn't matter if they are wrong sometimes.
+ # These rules are not perfect, but they are currently only used
for
+ # names of languages and Wikimedia sites, so it doesn't matter
if they are wrong sometimes.
# Just add a special case for your site name if necessary.
# substr doesn't support Unicode and mb_substr has issues,
@@ -101,6 +101,28 @@
$word = join( '', array_slice(
$chars[0], 0, -3 ) ) . 'ных';
}
break;
+ case 'languageadverb': # наречие с названием
языка
+ $suffix = join( '', array_slice(
$chars[0], -4 ) );
+ if ( $suffix === 'ский' || $suffix ===
'цкий' ) {
+ $word = 'по-' . join(
+ '',
+ array_slice( $chars[0],
0, count( $chars[0] ) - 1 )
+ );
+ break;
+ }
+
+ if ( $word === 'иврит' ) {
+ $word = 'на иврите';
+ break;
+ }
+
+ if ( $word === 'идиш' ) {
+ $word = 'на идиш';
+ break;
+ }
+
+ // Несклоняемые
+ $word = 'на языке ' . $word;
}
}
diff --git a/tests/phpunit/languages/LanguageRuTest.php
b/tests/phpunit/languages/LanguageRuTest.php
index 1381afb..1fad359 100644
--- a/tests/phpunit/languages/LanguageRuTest.php
+++ b/tests/phpunit/languages/LanguageRuTest.php
@@ -110,6 +110,31 @@
'Викиданные',
'prepositional',
),
+ array(
+ 'по-русски',
+ 'русский',
+ 'languageadverb',
+ ),
+ array(
+ 'по-немецки',
+ 'немецкий',
+ 'languageadverb',
+ ),
+ array(
+ 'на иврите',
+ 'иврит',
+ 'languageadverb',
+ ),
+ array(
+ 'на идиш',
+ 'идиш',
+ 'languageadverb',
+ ),
+ array(
+ 'на языке гуарани',
+ 'гуарани',
+ 'languageadverb',
+ ),
);
}
}
--
To view, visit https://gerrit.wikimedia.org/r/172501
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib6a0afa5c3736f8b9b2e121cd752c53ee50fad75
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Amire80 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits