jcasanova
(Julien)
1
Hi,
I’d like to retrieve the country names, i.e. territories of the CLDR, in multiple locales.
Under the I18N section of the definitive guide, it’s written :
And in every data file under i18n/data in the framework, a comment says:
I didn’t find this cldr command, is it still possible to retrieve this information automatically?
How do you manage translated country names in your projects?
Thanks
jcasanova
(Julien)
2
ok, following my previous post, it seems I forgot to look for the build directory of yii framework.
I guess I need to extendthe CldrCommand by adding some processing methods to extract country names information. Did any one already did that?
Thanks
balrok
(Der Coole Carl)
3
Even if this thread is a bit old… since it’s the first googleresult and is still valid:
To extract territories and languages from cldr i did the following:
1.downloaded core.zip from one of this:http://cldr.unicode.org/index/downloads
2.applied this patch:
diff --git a/build/commands/CldrCommand.php b/build/commands/CldrCommand.php
index a10a99c..1578455 100644
--- a/build/commands/CldrCommand.php
+++ b/build/commands/CldrCommand.php
@@ -120,6 +119,9 @@ EOD;
$this->parseNumberFormats($xml,$data);
$this->parseCurrencySymbols($xml,$data);
+ $this->parseLanguages($xml,$data);
+ $this->parseTerritories($xml,$data);
+
$this->parseMonthNames($xml,$data);
$this->parseWeekDayNames($xml,$data);
$this->parseEraNames($xml,$data);
@@ -190,6 +192,26 @@ EOD;
}
}
+ protected function parseLanguages($xml,&$data)
+ {
+ $languages=$xml->xpath('/ldml/localeDisplayNames/languages/language');
+ foreach($languages as $language)
+ {
+ if((string)$language!='')
+ $data['languages'][(string)$language['type']]=(string)$language;
+ }
+ }
+
+ protected function parseTerritories($xml,&$data)
+ {
+ $territories=$xml->xpath('/ldml/localeDisplayNames/territories/territory');
+ foreach($territories as $territory)
+ {
+ if((string)$territory!='')
+ $data['territories'][(string)$territory['type']]=(string)$territory;
+ }
+ }
+
protected function parseMonthNames($xml,&$data)
{
$monthTypes=$xml->xpath('/ldml/dates/calendars/calendar[@type=\'gregorian\']/months/monthContext[@type=\'format\']/monthWidth');
-
copied the CldrCommand to framework/cli/commands
-
cd framework; mkdir data; cp -r Extracted_Core_zip_folder/main/* data
-
php yiic.php cldr data
jcasanova
(Julien)
4
Hi Balrok
Thanks for your answer, I’ll try your patch.
Julien
keithws
(Yii)
5
That is very useful data. Has this patch been submitted for inclusion to a future release?