> 백엔드 개발 > PHP 튜토리얼 > CakePHP에서 i18n을 어떻게 사용하나요?

CakePHP에서 i18n을 어떻게 사용하나요?

王林
풀어 주다: 2023-06-04 12:12:02
원래의
748명이 탐색했습니다.

CakePHP는 다국어 국제화(i18n) 통합을 지원하는 오픈 소스 PHP 프레임워크입니다. i18n은 귀하의 애플리케이션을 다국어로 만들어 귀하가 보다 쉽게 ​​해외 고객을 유치하고 현지 사용자에게 더 나은 서비스를 제공할 수 있도록 해줍니다. 이번 글에서는 CakePHP i18n의 사용법을 심층적으로 살펴보겠습니다.

  1. 시작하기

먼저, CakePHP의 다국어 기능을 활성화해야 합니다. 이렇게 하려면 구성 파일 config/bootstrap.php를 업데이트하고 애플리케이션에 다음 코드를 추가하세요.

Configure::write('App.defaultLocale', 'en_US'); //设置默认语言
Configure::write('App.languages', ['en_US', 'es_ES', 'de_DE']); //可选语言
로그인 후 복사
  1. Language files

다음으로 config/Locale 디렉터리에 언어 파일을 만들어야 합니다. 이러한 언어 파일의 이름은 locale%iso-639-1code%iso-3166-1-alpha-2 format.php로 지정되어야 합니다. 예를 들어 en_US.php, es_ES.php, de_DE.php 등입니다.

언어 파일에서 번역 문자열을 정의할 수 있습니다. 예를 들어, en_US.php에서는 다음과 같이 작성할 수 있습니다:

return [
    'welcome' => 'Welcome',
    'hello' => 'Hello',
];
로그인 후 복사

es_ES.php에서는 다음과 같이 작성할 수 있습니다:

return [
    'welcome' => 'Bienvenido',
    'hello' => 'Hola',
];
로그인 후 복사

de_DE.php에서는 다음과 같이 작성할 수 있습니다:

return [
    'welcome' => 'Willkommen',
    'hello' => 'Hallo',
];
로그인 후 복사
  1. View layer

view에서 다음을 사용할 수 있습니다. __() 텍스트를 번역하는 함수입니다. 예를 들어, 뷰에 "Welcome"을 표시하려면 다음과 같이 작성할 수 있습니다.

<h1><?php echo __('welcome'); ?></h1>
로그인 후 복사

이렇게 하면 현재 로케일에 대한 올바른 번역 문자열이 자동으로 사용됩니다. 로케일이 en_US인 경우 환영 메시지가 표시됩니다. 로케일이 es_ES인 경우 Bienvenido가 표시됩니다.

마찬가지로 뷰 파일에서 __('string', array('name' => 'value'))를 사용하여 출력 형식을 지정할 수 있습니다.

<?php echo __('My name is %name%', array('name' => 'Lucas')); ?>
로그인 후 복사

Output 제 이름은 루카스입니다.

  1. Control Layer

컨트롤러에서 Configure::write('Config.언어', 'langauge')를 사용하여 현재 로캘을 변경할 수 있습니다.

Configure::write('Config.language', 'de_DE'); //将语言环境设置为de_DE
로그인 후 복사

컨트롤러의 작업 로캘에서 다른 항목을 다음과 같이 설정할 수 있습니다. 필요에 따라 각 보기에 대해 다른 번역 문자열을 선택합니다. 이는 동적 웹사이트에 매우 유용합니다.

예:

public function index()
{
    Configure::write('Config.language', 'es_ES');
    $this->set('title', __('home_title'));
}
로그인 후 복사

이 예에서는 es_ES.php를 로드하고 번역 문자열 home_title을 사용합니다.

  1. 날짜 및 시간

CakePHP i18n은 현지화된 날짜 및 시간 형식도 지원합니다. 예:

echo $this->Time->nice(new DateTime('2018-11-20')); //在控制器分配或直接用数组传递时使用
echo $this->Time->nice($dateObject);
로그인 후 복사

현재 로캘에 따라 날짜 형식이 지정되고 2018년 11월 20일과 유사한 결과가 표시됩니다. app.php에서 날짜 형식을 수정할 수 있습니다.

'defaultDateFormat' => 'yyyy-MM-dd',
로그인 후 복사
  1. 요약

보시다시피 CakePHP의 i18n은 사용이 매우 간단합니다. 프레임워크에서 제공하는 i18n 지원을 사용하면 전 세계 사용자에게 다국어 및 현지화 지원을 쉽고 빠르게 제공할 수 있습니다. 최고의 사용자 경험을 위해서는 항상 애플리케이션에 명확하고 정확한 텍스트를 제공하는 것을 잊지 마세요.

위 내용은 CakePHP에서 i18n을 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿