Browse Source

Ajout des traductions ar, ru, es, zh pour près de 200 pays (sur 249) et modifications de certaines traductions en ou fr ISO pas très heureuses.

Les traductions viennent de l'UN (database UNTERM).
master
Eric Lupinacci 5 months ago
parent
commit
66f97eb90d
  1. 71
      inc/isocode_utils.php
  2. 184
      services/nomenclature/iso/iso3166countries-trad-unterm-add.csv
  3. 15
      services/nomenclature/iso/iso3166countries-trad-unterm-dif.csv
  4. 15
      services/nomenclature/iso/iso3166countries-trad-unterm-iso.csv
  5. 43
      services/nomenclature/iso/iso_api.php

71
inc/isocode_utils.php

@ -287,6 +287,13 @@ function initialiser_enregistrement($table, $config_source, $config_unused = arr
return $enregistrement;
}
/**
* @param $type
* @param $enregistrements
* @param $table
*
* @return bool
*/
function inserer_enregistrements($type, $enregistrements, $table) {
// Initialisation du retour de la fonction
@ -518,6 +525,11 @@ function sha_identique($sha, $table) {
}
/**
* @param $config
*
* @return mixed
*/
function compiler_champs($config) {
// On initialise avec les champs de base, c'est à dire ceux qui vont être extraits directement de la source.
@ -545,6 +557,12 @@ function compiler_champs($config) {
}
/**
* @param $meta
* @param $type
* @param $service
* @param $table
*/
function consigner_chargement($meta, $type, $service, $table) {
// Prendre en compte le type pour organiser la consignation.
@ -559,6 +577,11 @@ function consigner_chargement($meta, $type, $service, $table) {
}
/**
* @param $type
* @param $service
* @param $table
*/
function deconsigner_chargement($type, $service, $table) {
// Prendre en compte l'indexation par pays pour les subdivisions
@ -570,6 +593,13 @@ function deconsigner_chargement($type, $service, $table) {
}
}
/**
* @param $xml_json
* @param $config
*
* @return array|mixed|string
* @throws Exception
*/
function decoder_xml_json($xml_json, $config) {
// Initialisation du contenu décodé
@ -649,3 +679,44 @@ function configuration_lire($type, $service, $table = '', $variable = '', $defau
return $config;
}
/**
* Complète un texte sous forme de balise multi avec une liste de traductions.
* Les nouvelles traductions, si elles sont non vides, sont soit ajoutées, soit écrasent la la traduction courante.
*
* @param string $multi_in
* @param array $traductions
*
* @return string
*/
function completer_traduction($multi_in, $traductions) {
// On initialise la sortie avec le texte multi fourni en entrée.
$multi_out = $multi_in;
// On décompose le texte multi d'entrée en tableau de traductions
if ($traductions) {
if (preg_match(_EXTRAIRE_MULTI, $multi_in, $match)) {
$traductions_out = extraire_trads($match[1]);
// On boucle sur les nouvelles traductions à ajouter ou à mettre à jour
foreach ($traductions as $_langue => $_traduction) {
// Si la traduction d'une langue est vide on ne l'ajoute ni ne la modifie
if ($_traduction) {
$traductions_out[$_langue] = $_traduction;
}
}
// On reconstitue le texte multi
$multi_out = '';
foreach ($traductions_out as $_langue => $_traduction) {
if ($_traduction) {
$multi_out .= ($_langue ? '[' . $_langue . ']' : '') . trim($_traduction);
}
}
$multi_out = "<multi>${multi_out}</multi>";
}
}
return $multi_out;
}

184
services/nomenclature/iso/iso3166countries-trad-unterm-add.csv

@ -0,0 +1,184 @@
iso2;es;ru;zh;ar
AD;Andorra;Андорра;安道尔;أندورا
AE;Emiratos Árabes Unidos (los);Объединенные Арабские Эмираты;阿拉伯联合酋长国;الإمارات العربية المتحدة
AF;Afganistán (el);Афганистан;阿富汗;أفغانستان
AG;Antigua y Barbuda;Антигуа и Барбуда;安提瓜和巴布达;أنتيغوا وبربودا
AL;Albania;Албания;阿尔巴尼亚;ألبانيا
AM;Armenia;Армения;亚美尼亚;أرمينيا
AO;Angola;Ангола;安哥拉;أنغولا
AR;Argentina (la);Аргентина;阿根廷;الأرجنتين
AT;Austria;Австрия;奥地利;النمسا
AU;Australia;Австралия;澳大利亚;أستراليا
AZ;Azerbaiyán;Азербайджан;阿塞拜疆;أذربيجان
BA;Bosnia y Herzegovina;Босния и Герцеговина;波斯尼亚和黑塞哥维那;البوسنة والهرسك
BB;Barbados;Барбадос;巴巴多斯;بربادوس
BD;Bangladesh;Бангладеш;孟加拉国;بنغلاديش
BE;Bélgica;Бельгия;比利时;بلجيكا
BF;Burkina Faso;Буркина-Фасо;布基纳法索;بوركينا فاسو
BG;Bulgaria;Болгария;保加利亚;بلغاريا
BH;Bahrein;Бахрейн;巴林;البحرين
BI;Burundi;Бурунди;布隆迪;بوروندي
BJ;Benin;Бенин;贝宁;بنن
BN;Brunei Darussalam;Бруней-Даруссалам;文莱达鲁萨兰国;بروني دار السلام
BO;Bolivia (Estado Plurinacional de);Боливия (Многонациональное Государство);多民族玻利维亚国;بوليفيا (دولة - المتعددة القوميات)
BR;Brasil (el);Бразилия;巴西;البرازيل
BS;Bahamas (las);Багамские Острова;巴哈马;جزر البهاما
BT;Bhután;Бутан;不丹;بوتان
BW;Botswana;Ботсвана;博茨瓦纳;بوتسوانا
BY;Belarús;Беларусь;白俄罗斯;بيلاروس
BZ;Belice;Белиз;伯利兹;بليز
CA;Canadá (el);Канада;加拿大;كندا
CF;República Centroafricana (la);Центральноафриканская Республика;中非共和国;جمهورية أفريقيا الوسطى
CG;Congo (el);Конго;刚果(布);الكونغو
CH;Suiza;Швейцария;瑞士;سويسرا
CI;Côte d’Ivoire;Кот-д’Ивуар;科特迪瓦;كوت ديفوار
CL;Chile;Чили;智利;شيلي
CM;Camerún (el);Камерун;喀麦隆;الكاميرون
CN;China;Китай;中国;الصين
CO;Colombia;Колумбия;哥伦比亚;كولومبيا
CR;Costa Rica;Коста-Рика;哥斯达黎加;كوستاريكا
CU;Cuba;Куба;古巴;كوبا
CV;Cabo Verde;Кабо-Верде;佛得角;كابو فيردي
CY;Chipre;Кипр;塞浦路斯;قبرص
CZ;Chequia;Чехия;捷克;تشيكيا
DE;Alemania;Германия;德国;ألمانيا
DJ;Djibouti;Джибути;吉布提;جيبوتي
DK;Dinamarca;Дания;丹麦;الدانمرك
DM;Dominica;Доминика;多米尼克;دومينيكا
DZ;Argelia;Алжир;阿尔及利亚;الجزائر
EC;Ecuador (el);Эквадор;厄瓜多尔;إكوادور
EE;Estonia;Эстония;爱沙尼亚;إستونيا
EG;Egipto;Египет;埃及;مصر
ER;Eritrea;Эритрея;厄立特里亚;إريتريا
ES;España;Испания;西班牙;إسبانيا
ET;Etiopía;Эфиопия;埃塞俄比亚;إثيوبيا
FI;Finlandia;Финляндия;芬兰;فنلندا
FJ;Fiji;Фиджи;斐济;فيجي
FM;Micronesia (Estados Federados de);Микронезия (Федеративные Штаты);密克罗尼西亚联邦;ميكرونيزيا (ولايات - الموحدة)
FR;Francia;Франция;法国;فرنسا
GA;Gabón (el);Габон;加蓬;غابون
GB;Reino Unido de Gran Bretaña e Irlanda del Norte (el);Соединенное Королевство Великобритании и Северной Ирландии;大不列颠及北爱尔兰联合王国;المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية
GD;Granada;Гренада;格林纳达;غرينادا
GE;Georgia;Грузия;格鲁吉亚;جورجيا
GH;Ghana;Гана;加纳;غانا
GM;Gambia;Гамбия;冈比亚;غامبيا
GN;Guinea;Гвинея;几内亚;غينيا
GQ;Guinea Ecuatorial;Экваториальная Гвинея;赤道几内亚;غينيا الاستوائية
GR;Grecia;Греция;希腊;اليونان
GT;Guatemala;Гватемала;危地马拉;غواتيمالا
GW;Guinea-Bissau;Гвинея-Бисау;几内亚比绍;غينيا - بيساو
GY;Guyana;Гайана;圭亚那;غيانا
HN;Honduras;Гондурас;洪都拉斯;هندوراس
HR;Croacia;Хорватия;克罗地亚;كرواتيا
HT;Haití;Гаити;海地;هايتي
HU;Hungría;Венгрия;匈牙利;هنغاريا
ID;Indonesia;Индонезия;印度尼西亚;إندونيسيا
IE;Irlanda;Ирландия;爱尔兰;أيرلندا
IL;Israel;Израиль;以色列;إسرائيل
IN;India (la);Индия;印度;الهند
IQ;Iraq (el);Ирак;伊拉克;العراق
IR;Irán (República Islámica del);Иран (Исламская Республика);伊朗伊斯兰共和国;إيران (جمهورية - الإسلامية)
IS;Islandia;Исландия;冰岛;آيسلندا
IT;Italia;Италия;意大利;إيطاليا
JM;Jamaica;Ямайка;牙买加;جامايكا
JO;Jordania;Иордания;约旦;الأردن
JP;Japón (el);Япония;日本;اليابان
KE;Kenya;Кения;肯尼亚;كينيا
KG;Kirguistán;Кыргызстан;吉尔吉斯斯坦;قيرغيزستان
KH;Camboya;Камбоджа;柬埔寨;كمبوديا
KI;Kiribati;Кирибати;基里巴斯;كيريباس
KM;Comoras (las);Коморские Острова;科摩罗;جزر القمر
KN;Saint Kitts y Nevis;Сент-Китс и Невис;圣基茨和尼维斯;سانت كيتس ونيفس
KW;Kuwait;Кувейт;科威特;الكويت
KZ;Kazajstán;Казахстан;哈萨克斯坦;كازاخستان
LB;Líbano (el);Ливан;黎巴嫩;لبنان
LC;Santa Lucía;Сент-Люсия;圣卢西亚;سانت لوسيا
LI;Liechtenstein;Лихтенштейн;列支敦士登;ليختنشتاين
LK;Sri Lanka;Шри-Ланка;斯里兰卡;سري لانكا
LR;Liberia;Либерия;利比里亚;ليبريا
LS;Lesotho;Лесото;莱索托;ليسوتو
LT;Lituania;Литва;立陶宛;ليتوانيا
LU;Luxemburgo;Люксембург;卢森堡;لكسمبرغ
LV;Letonia;Латвия;拉脱维亚;لاتفيا
LY;Libia;Ливия;利比亚;ليبيا
MA;Marruecos;Марокко;摩洛哥;المغرب
MC;Mónaco;Монако;摩纳哥;موناكو
ME;Montenegro;Черногория;黑山;الجبل الأسود
MG;Madagascar;Мадагаскар;马达加斯加;مدغشقر
MK;Macedonia del Norte;Северная Македония;北马其顿;مقدونيا الشمالية
ML;Malí;Мали;马里;مالي
MM;Myanmar;Мьянма;缅甸;ميانمار
MN;Mongolia;Монголия;蒙古;منغوليا
MR;Mauritania;Мавритания;毛里塔尼亚;موريتانيا
MT;Malta;Мальта;马耳他;مالطة
MU;Mauricio;Маврикий;毛里求斯;موريشيوس
MV;Maldivas;Мальдивские Острова;马尔代夫;ملديف
MW;Malawi;Малави;马拉维;ملاوي
MX;México;Мексика;墨西哥;المكسيك
MY;Malasia;Малайзия;马来西亚;ماليزيا
MZ;Mozambique;Мозамбик;莫桑比克;موزامبيق
NA;Namibia;Намибия;纳米比亚;ناميبيا
NE;Níger (el);Нигер;尼日尔;النيجر
NG;Nigeria;Нигерия;尼日利亚;نيجيريا
NI;Nicaragua;Никарагуа;尼加拉瓜;نيكاراغوا
NL;Países Bajos (los);Нидерланды;荷兰;هولندا
NO;Noruega;Норвегия;挪威;النرويج
NP;Nepal;Непал;尼泊尔;نيبال
NR;Nauru;Науру;瑙鲁;ناورو
NZ;Nueva Zelandia;Новая Зеландия;新西兰;نيوزيلندا
OM;Omán;Оман;阿曼;عمان
PA;Panamá;Панама;巴拿马;بنما
PE;Perú (el);Перу;秘鲁;بيرو
PG;Papua Nueva Guinea;Папуа — Новая Гвинея;巴布亚新几内亚;بابوا غينيا الجديدة
PH;Filipinas;Филиппины;菲律宾;الفلبين
PK;Pakistán (el);Пакистан;巴基斯坦;باكستان
PL;Polonia;Польша;波兰;بولندا
PT;Portugal;Португалия;葡萄牙;البرتغال
PW;Palau;Палау;帕劳;بالاو
PY;Paraguay (el);Парагвай;巴拉圭;باراغواي
QA;Qatar;Катар;卡塔尔;قطر
RO;Rumania;Румыния;罗马尼亚;رومانيا
RS;Serbia;Сербия;塞尔维亚;صربيا
RW;Rwanda;Руанда;卢旺达;رواندا
SA;Arabia Saudita (la);Саудовская Аравия;沙特阿拉伯;المملكة العربية السعودية
SC;Seychelles;Сейшельские Острова;塞舌尔;سيشيل
SD;Sudán (el);Судан;苏丹;السودان
SE;Suecia;Швеция;瑞典;السويد
SG;Singapur;Сингапур;新加坡;سنغافورة
SI;Eslovenia;Словения;斯洛文尼亚;سلوفينيا
SK;Eslovaquia;Словакия;斯洛伐克;سلوفاكيا
SL;Sierra Leona;Сьерра-Леоне;塞拉利昂;سيراليون
SM;San Marino;Сан-Марино;圣马力诺;سان مارينو
SN;Senegal (el);Сенегал;塞内加尔;السنغال
SO;Somalia;Сомали;索马里;الصومال
SR;Suriname;Суринам;苏里南;سورينام
SS;Sudán del Sur;Южный Судан;南苏丹;جنوب السودان
ST;Santo Tomé y Príncipe;Сан-Томе и Принсипи;圣多美和普林西比;سان تومي وبرينسيبي
SV;El Salvador;Сальвадор;萨尔瓦多;السلفادور
SY;República Árabe Siria (la);Сирийская Арабская Республика;阿拉伯叙利亚共和国;الجمهورية العربية السورية
SZ;Eswatini;Эсватини;斯威士兰;إسواتيني
TD;Chad (el);Чад;乍得;تشاد
TG;Togo (el);Того;多哥;توغو
TH;Tailandia;Таиланд;泰国;تايلند
TJ;Tayikistán;Таджикистан;塔吉克斯坦;طاجيكستان
TL;Timor-Leste;Тимор-Лешти;东帝汶;تيمور- ليشتي
TM;Turkmenistán;Туркменистан;土库曼斯坦;تركمانستان
TN;Túnez;Тунис;突尼斯;تونس
TO;Tonga;Тонга;汤加;تونغا
TR;Turquía;Турция;土耳其;تركيا
TT;Trinidad y Tabago;Тринидад и Тобаго;特立尼达和多巴哥;ترينيداد وتوباغو
TV;Tuvalu;Тувалу;图瓦卢;توفالو
UA;Ucrania;Украина;乌克兰;أوكرانيا
UG;Uganda;Уганда;乌干达;أوغندا
US;Estados Unidos de América (los);Соединенные Штаты Америки;美利坚合众国;الولايات المتحدة الأمريكية
UY;Uruguay (el);Уругвай;乌拉圭;أوروغواي
UZ;Uzbekistán;Узбекистан;乌兹别克斯坦;أوزبكستان
VA;Santa Sede (la);Святой Престол;罗马教廷;الكرسي الرسولي
VC;San Vicente y las Granadinas;Сент-Винсент и Гренадины;圣文森特和格林纳丁斯;سانت فنسنت وجزر غرينادين
VE;Venezuela (República Bolivariana de);Венесуэла (Боливарианская Республика);委内瑞拉玻利瓦尔共和国;فنزويلا (جمهورية - البوليفارية)
VN;Viet Nam;Вьетнам;越南;فييت نام
WS;Samoa;Самоа;萨摩亚;ساموا
YE;Yemen (el);Йемен;也门;اليمن
ZA;Sudáfrica;Южная Африка;南非;جنوب أفريقيا
ZM;Zambia;Замбия;赞比亚;زامبيا
ZW;Zimbabwe;Зимбабве;津巴布韦;زمبابوي

15
services/nomenclature/iso/iso3166countries-trad-unterm-dif.csv

@ -0,0 +1,15 @@
iso2;en;fr;es;ru;zh;ar
KP;Democratic People's Republic of Korea (the);République populaire démocratique de Corée (la);República Popular Democrática de Corea (la);Корейская Народно-Демократическая Республика;朝鲜民主主义人民共和国;جمهورية كوريا الشعبية الديمقراطية
CD;Democratic Republic of the Congo (the);République démocratique du Congo (la);República Democrática del Congo (la);Демократическая Республика Конго;刚果民主共和国;جمهورية الكونغو الديمقراطية
DO;;République dominicaine (la);República Dominicana (la);Доминиканская Республика;多米尼加;الجمهورية الدومينيكية
LA;;République démocratique populaire lao (la);República Democrática Popular Lao (la);Лаосская Народно-Демократическая Республика;老挝人民民主共和国;جمهورية لاو الديمقراطية الشعبية
MH;;Îles Marshall (les);Islas Marshall (las);Маршалловы Острова;马绍尔群岛;جزر مارشال
NU;;Nioué;Niue;Ниуэ;纽埃;نيوي
KR;Republic of Korea (the);République de Corée (la);República de Corea (la);Республика Корея;大韩民国;جمهورية كوريا
MD;Republic of Moldova (the);République de Moldova (la);República de Moldova (la);Республика Молдова;摩尔多瓦共和国;جمهورية مولدوفا
RU;;Fédération de Russie (la);Federación de Rusia (la);Российская Федерация;俄罗斯联邦;الاتحاد الروسي
SB;;Îles Salomon (les);Islas Salomón (las);Соломоновы Острова;所罗门群岛;جزر سليمان
PS;State of Palestine (the);État de Palestine (l');Estado de Palestina (el);Государство Палестина;巴勒斯坦国;دولة فلسطين
TZ;United Republic of Tanzania (the);République-Unie de Tanzanie (la);República Unida de Tanzanía (la);Объединенная Республика Танзания;坦桑尼亚联合共和国;جمهورية تنزانيا المتحدة
VU;;Vanuatu;Vanuatu;Вануату;瓦努阿图;فانواتو
CK;;Îles Cook (les);Islas Cook (las);Острова Кука;库克群岛;جزر كوك

15
services/nomenclature/iso/iso3166countries-trad-unterm-iso.csv

@ -0,0 +1,15 @@
iso2;en;fr
AX;;Îles Åland (les)
BV;;Île Bouvet (l')
CC;;Îles Cocos (les) / Îles Keeling (les)
CX;;Île Christmas (l')
FK;Falkland Islands (the);Îles Falkland (les)
FO;;Îles Féroé (les)
HM;;Île Heard-et-Îles MacDonald (l')
IO;;Territoire britannique de l'océan Indien (le)
KY;;Îles Caïmans (les)
MP;;Îles Mariannes du Nord (les)
NF;;Île Norfolk (l')
TC;;Îles Turks-et-Caïcos (les)
VG;;Îles Vierges britanniques (les)
VI;;Îles Vierges des États-Unis (les)

43
services/nomenclature/iso/iso_api.php

@ -39,6 +39,13 @@ if (!defined('_ISOCODE_M49_REGION_PAYS')) {
*/
define('_ISOCODE_M49_REGION_PAYS', 'services/nomenclature/m49/m49regions_countries.csv');
}
if (!defined('_ISOCODE_PATTERN_UNTERM_TRADUCTIONS')) {
/**
* Chemin du fichier des régions-pays M49 contenant la région de rattachement des pays.
* Complément à la table iso639countries.
*/
define('_ISOCODE_PATTERN_UNTERM_TRADUCTIONS', 'services/nomenclature/iso/iso3166countries-trad-unterm-*.csv');
}
if (!defined('_ISOCODE_IOTA_ISO4217_SYMBOL')) {
/**
* URL de base pour charger la page du tableau des devises ISO-4217 sur le site
@ -422,9 +429,30 @@ function iso3166countries_completer_table($enregistrements, $config) {
}
}
// Lecture des fichiers de traductions UNTERM et compilation d'un tableau de traductions par pays concerné.
$traductions = array();
if ($fichiers = glob(_DIR_PLUGIN_ISOCODE . _ISOCODE_PATTERN_UNTERM_TRADUCTIONS)) {
// On extrait les traductions sous forme de tableau indexé par le code alpha2 du pays.
// Les fichiers ne se recouvre jamais en termes de pays.
$importer = charger_fonction('importer_csv', 'inc');
foreach ($fichiers as $_fichier) {
$traductions_fichier = $importer($_fichier, true, ';');
$traductions_fichier = array_column($traductions_fichier, null, 'iso2');
$traductions = array_merge($traductions, $traductions_fichier);
}
}
// On complète maintenant le tableau des enregistrements avec les informations glanées dans le fichier geonames
// et dans celui du M49.
foreach ($enregistrements as $_cle => $_enregistrement) {
// La région M49
$code = $_enregistrement['code_num'];
if (isset($enregistrements_m49[$code])) {
$enregistrements[$_cle] = array_merge($enregistrements[$_cle], $enregistrements_m49[$code]);
} else {
$enregistrements[$_cle] = array_merge($enregistrements[$_cle], $enregistrement_m49_defaut);
}
// Les informations Geonames
$code = $_enregistrement['code_alpha2'];
if (isset($enregistrements_geo[$code])) {
@ -433,12 +461,15 @@ function iso3166countries_completer_table($enregistrements, $config) {
$enregistrements[$_cle] = array_merge($enregistrements[$_cle], $enregistrement_geo_defaut);
}
// La région M49
$code = $_enregistrement['code_num'];
if (isset($enregistrements_m49[$code])) {
$enregistrements[$_cle] = array_merge($enregistrements[$_cle], $enregistrements_m49[$code]);
} else {
$enregistrements[$_cle] = array_merge($enregistrements[$_cle], $enregistrement_m49_defaut);
// Les traductions UNTERM
if (isset($traductions[$code])) {
// Des traductions sont disponibles pour mise à jour
$traductions_pays = $traductions[$code];
unset($traductions_pays['iso2']);
$enregistrements[$_cle]['label'] = completer_traduction(
$enregistrements[$_cle]['label'],
$traductions_pays
);
}
}

Loading…
Cancel
Save