CakePHP 프로그램 예제를 본 프로그래머는 컨트롤러 또는 뷰에서 대부분의 출력이 __("xxxx") 함수를 사용하여 수행된다는 것을 알 수 있습니다.
이 함수는 getText() 함수와 동일합니다. 다른 프레임워크에서는 키 값과 로캘을 기반으로 해당 언어 콘텐츠를 동적으로 가져옵니다.
1) i18n, l10n
먼저 Localization과 Internationalization이라는 두 단어를 이해해야 합니다. Localization은 웹 애플리케이션을 적응하도록 변환하는 것을 의미합니다. 특정 언어(또는 문화)가 필요한 반면, 국제화는 웹 애플리케이션의 지역화 기능을 나타냅니다. 국제화 및 현지화는 종종 i18n 및 l10n으로 축약됩니다. 숫자 18과 10은 단어의 첫 글자부터 마지막 글자까지의 문자 수입니다.
2) 현지화된 언어 파일 구현
현지화된 콘텐츠가 필요한 모든 컨트롤러는 먼저 CakePHP의 L10n 클래스를 참조해야 합니다. AppController에서 가져올 수 있으므로 모든 컨트롤러에 사용할 수 있습니다.
view plaincopy
//참조 L10n 클래스:
App::import('Core', 'l10n');
클래스 ProductController는 AppController를 확장합니다. >
view plaincopy
/app/locale/fre/LC_MESSAGES/default.po (French)
파일을 생성한 후에는 현지화된 내용을 편집할 수 있습니다. 콘텐츠. 각 문자열의 키 값은 고유해야 하며 해당 값을 포함해야 합니다. 다음은 간단한 예입니다.
view plaincopy
view plaincopy
중국어 default.po 파일의 내용에 해당:
msgid "purchase" msgstr "이름을 선택하여 공을 구매하세요.view plaincopy
msgid "search" msgstr "点击搜索我们的产品列表。"
view plaincopy
;/pre> <p></p><pre class="brush:php;toolbar:false">
(msgid는 문자열을 식별하는 데 사용되며 msgstr은 해당 언어의 내용입니다)
.po 파일은 UTF-8로 인코딩되어야 하며 각 msmstr 값은 1014자로 제한되어야 합니다. Macintosh 컴퓨터를 사용하는 경우 파일을 편집할 때 Unix 줄 바꿈(LF)을 사용해야 합니다. 그렇지 않으면 파일이 올바르게 구문 분석되지 않습니다. 무료 편집기인 Poedit를 사용하여 .po 파일을 쉽게 편집할 수 있습니다.
3) 애플리케이션의 로컬 로케일을 설정합니다(이 단계는 생략 가능하며, cakephp는 사용자의 브라우저 설정에 따라 해당 언어를 사용하여 표시합니다)
1. config/core. php 구성::write:
Configure::write('Config.언어' , "chi"); 여기서 chi는 중국어를 나타내고 영어는 eng이어야 합니다. 2. php 파일 프로그램 시작 전 쓰기(예를 들어 beforeFilter에서 사용자의 로케일에 맞게 해당 언어 설정):$this->Session- >write ("Config.랭귀지","chi");
3. 다음 코드를 사용하여
view plaincopy
$l10n->get('chi') //로케일을 중국어로 설정
//然后使用_()函数来实现本地化
_('msgid');
4)实现本地化
在需要实现本地化的地方,调用_()函数
1、直接输出字符串,没有返回值:
view plaincopy
__("msgid"); 或者 _("msgid", false);
2、间接输出字符串,有返回值:
view plaincopy
__("msgid",true);
3、还有input要加个label来使他出现中文。
view plaincopy
echo $form->input('name',array('label'=>__('msgid',true)));
5)没有覆盖的内容
日期、货币格式的国际化可以直接用php中的setlocale函数来实现。
以上就是Cakephp本地化和国际化详解 的内容,更多相关内容请关注PHP中文网(www.php.cn)!