2017-04-04 1 views
0

아래는 내 웹 사이트에 언어 전환기를 표시하는 것과 관련이 있습니다.PHP : 상점 언어 및 해당 언어 이름

현재 배열에서 언어 코드 (키)와 언어 이름 (값)을 사용하고 있으므로 나중에 호출하여 웹 사이트에 표시 할 수 있습니다.

array (
    'en' => 'English', 
    'fr' => 'French', 
    'de' => 'German' 
); 

각 언어를 기본 텍스트로 표시 할 수 있도록 코딩을 업그레이드하고 싶습니다. 예를 들어 "영어"는 "영어"(프랑스어)와 "영어"(독일어)로 작성 될 수 있습니다.

제 질문은이 작업을 수행하는 가장 효율적인 방법입니다. 이것을 위해 새로운 배열을 만들겠습니까? 아니면 이러한 언어 이름을 제공하는 내장 PHP 함수를 사용해야합니까? 필요한 경우 처음부터 건물은 완벽하게 괜찮지 만 배열 구성 방법에 대한 지침이 필요합니다.

감사합니다.

+0

얼마나 많은 언어를 가지고 있느냐에 따라 상당히 지저분해질 수 있습니다. 영어로 번역해야 할 필요가 있다면 영어와 상관없는 프랑스어로 번역해야합니다. 언어를 모국어로 표시하는 것이 더 유용 할 것입니다. 유스 케이스를 사용하는 것을 알지 못하면 아마도 이것에 대한 완벽한 이유가있을 것입니다. 이 패키지는 영어와 동등한 이름을 제공합니다. https://github.com/rinvex/language – Augwa

답변

0

저는 다차원 배열을 사용하여 이름을 다른 언어로 저장했습니다. 당신은 당신이 세상의 모든 언어를 가지고 시작하면 고통이 될 수

echo $lang['fr']['fr'] //francais 
echo $lang['fr']['en'] //anglais 

를 수행하여 이름을 얻을 수 있지만, 적어도 이중 언어를 구사하는 처리 할 수 ​​

뭔가 그래서

$lang = [ 
    'en' => [ 
     'en' => 'english', 
     'fr' => 'french' 
    ], 
    'fr' => [ 
     'en' => 'anglais', 
     'fr' => 'francais' 
    ], 
]; 

처럼 .

본래 나는 경험이 없지만 http://php.net/manual/en/locale.getdisplaylanguage.php을보고 시작하는 것이 좋습니다.

긴 이야기 http://php.net/manual/en/class.locale.php 참조 inputlocale 의 언어에 대해 적절하게 현지화 된 표시 이름을 돌려줍니다.

0

를 사용하여 배열에서이 코드

echo Locale::getDisplayLanguage('locale', 'in_locale'); 

은 다음과 같이 사용 :

array (
    'en' => Locale::getDisplayLanguage('en', 'en'), 
    'fr' => Locale::getDisplayLanguage('fr', 'fr'), 
    'de' => Locale::getDisplayLanguage('de', 'de'), 
); 

Click here PHP 메뉴얼을.

0

한 단어 이상을 처리하려면 gettext() to provide localization을 사용해야합니다.

<?php 
bindtextdomain("myApp", "./locale"); 
textdomain("myApp"); 
$langs = array (
    'en' => _('English'), 
    'fr' => _('French'), 
    'de' => _('German') 
); 

은 그럼 당신은 위에서 지정한 ./locale/ 디렉토리의 각 언어에 대한 메시지 파일을 만들 것입니다. 예를 들어, 프랑스어는 다음과 같이 보입니다 :

msgid "English" 
msgstr "anglais" 
msgid "French" 
msgstr "français" 
msgid "German" 
msgid "allemande" 

이것은 PHP 에서뿐만 아니라 표준 라이브러리입니다. PHP 파일을 검색하여 _("text")을 찾고 자동으로 메시지 파일을 만드는 많은 프로그램이 있습니다.