이 글에서는 YII 프레임워크 프레임워크 튜토리얼의 국제화 구현 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
인터넷에 게시되는 웹 애플리케이션은 전 세계 사용자를 위한 것입니다. 전 세계의 사용자가 귀하의 웹 애플리케이션에 액세스할 수 있습니다. 물론 이는 귀하의 웹사이트와 부조화에 따라 다릅니다. 조화로운 사회에서는 부조화스러운 웹 애플리케이션에 액세스하는 것이 허용되지 않습니다.
YII는 국제적인 지원을 제공하므로 우리가 만드는 애플리케이션이 다양한 언어를 사용하는 사람들에게 적합할 수 있습니다.
국제화는 매우 멋진 일이며 어떤 대형 웹사이트도 진정한 국제화를 달성할 수 없습니다. 대부분은 이해되지 않는 언어를 위해 설계되었으며, 다른 웹사이트는 다른 지역에서 설계되었습니다. 응용 프로그램이 상대적으로 작고 많은 것을 다루지 않는다면 국제화하는 것이 꽤 허용됩니다.
국제화는 다음 측면에서 시작됩니다.
로캘
정보 텍스트 및 파일 리소스 번역
날짜/시간, 통화 기호 및 숫자 형식
YII의 국제화에 관련된 클래스는 /yii_dev/yii/framework/i18n 디렉토리에 있습니다:
/yii_dev/yii/framework/i18n# tree
.
├── CChoiceFormat.php
├── CDateFormatter.php
├── CDbMessageSource.php
├── CGettextMessageSource.php
├── CLocale.php
├── CMessageSource.php
├── CNumberFormatter.php
├── CPhpMessageSource.php
├── 데이터
│ ├── en_us.php
│ ├── ..... ..... ........
│ ├── zh_hk.php
│ ├── zh_mo.php
│ ├── zh.php
│ ├── zh_sg.php
│ ├── zh_tw.php
│ ├── zu.php
│ └── zu_za.php
└── gettext
├── CGettextFile.php
├── CGettextMoFile.php
└── CGettextPoFile.php
디렉토리 2개, 파일 616개
지역 설정
지역 설정으로 판단합니다. 사용자의 국가 및 언어.
YII는 지역을 대표하는 고유 ID라고 할 수 있는 공통 지역 식별자를 정의합니다.
YII는 CLocale 클래스를 사용하여 지역 데이터(통화, 날짜, 숫자 형식 등 포함)를 저장합니다.
지역의 고유 ID를 전달한 다음 CLocale::getInstance($localeID) 또는 CApplication::getLocale($localeID)를 통해 해당 CLocale 인스턴스를 가져옵니다. CLocale 인스턴스를 통해 사용자의 국가와 언어를 확인할 수 있습니다. 그런 다음 CLocale 데이터를 기반으로 해당 번역을 수행하여 현재 사용자가 사용하고 읽기에 더 적합한 웹 애플리케이션을 만들 수 있습니다. 가장 기본적인 것은 사용자를 위한 특정 번역을 수행하는 것입니다.
정보용 텍스트 및 파일 리소스 번역
번역은 단순히 한 언어를 다른 언어로 바꾸는 것입니다. 컴퓨터에서는 26개의 문자를 사용하는데, 이는 전자문서이다. 따라서 전자문서는 모든 언어의 원어라고 볼 수 있으며, 다른 모든 언어는 전자문서를 통해 번역된다. 번역되는 언어를 대상 언어라고 합니다.
특정 클래스 설명
/** * Translates a message to the specified language. * Starting from version 1.0.2, this method supports choice format (see {@link CChoiceFormat}), * i.e., the message returned will be chosen from a few candidates according to the given * number value. This feature is mainly used to solve plural format issue in case * a message has different plural forms in some languages. * @param string $category message category. Please use only word letters. Note, category 'yii' is * reserved for Yii framework core code use. See {@link CPhpMessageSource} for * more interpretation about message category. * @param string $message the original message * @param array $params parameters to be applied to the message using <code>strtr</code>. * Starting from version 1.0.2, the first parameter can be a number without key. * And in this case, the method will call {@link CChoiceFormat::format} to choose * an appropriate message translation. * Starting from version 1.1.6 you can pass parameter for {@link CChoiceFormat::format} * or plural forms format without wrapping it with array. * @param string $source which message source application component to use. * Defaults to null, meaning using 'coreMessages' for messages belonging to * the 'yii' category and using 'messages' for the rest messages. * @param string $language the target language. If null (default), the {@link CApplication::getLanguage application language} will be used. * This parameter has been available since version 1.0.3. * @return string the translated message * @see CMessageSource */ public static function t($category,$message,$params=array(),$source=null,$language=null) {
$category 소스 언어
$mesage 대상 언어
$params는 번역과 일치시킬 $mesage의 배열입니다.
구체적인 사용법은 다음과 같습니다.
Yii::t('app', 'Path alias "{alias}" is redefined.', array('{alias}'=>$alias))
물론 yiic에서 제공하는 명령줄 명령 메시지를 통해 번역할 수도 있습니다. 자세한 내용은 yiic 사용 지침을 참조하세요. 명령
날짜/시간, 돈, 숫자 형식
날짜/시간 처리 CDateFormatter 클래스
특정 참조(/yii_dev/yii/framework/i18n/CDateFormatter.php) 클래스 파일
숫자처리
특정 (/yii_dev/yii/framework/i18n/CNumberFormatter.php) 클래스 파일을 참고하세요
이 글이 모든 분들의 숫자처리를 기반으로 하는 PHP 프로그램 설계에 도움이 되길 바랍니다. Yii 프레임워크.
YII Framework 프레임워크 튜토리얼의 국제화 구현 방법과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!