세계화가 발전함에 따라 점점 더 많은 웹사이트와 애플리케이션이 다국어 지원을 제공해야 합니다. ThinkPHP6 프레임워크를 사용하는 개발자에게는 다국어 번역 작업을 구현하는 방법이 중요한 요구 사항입니다. 이 기사에서는 다국어 번역 작업에 ThinkPHP6을 사용하는 방법을 소개합니다.
ThinkPHP6에서 언어 팩은 키-값 쌍을 포함하는 배열입니다. 이는 app/lang/ 디렉토리 아래의 다양한 하위 디렉토리에 저장될 수 있습니다. 예:
/app/lang/zh-cn/ /app/lang/en-us/
그중 zh-cn 및 en-us는 언어 패키지의 이름이며, 이 언어 버전의 번역은 해당 디렉토리에 저장되어야 합니다. 언어 팩 디렉토리에는 일반적으로 각각 애플리케이션 번역 및 양식 유효성 검사에 해당하는 app.php 또는 유효성 검사.php 파일이 있습니다.
예:
/app/lang/zh-cn/app.php /app/lang/en-us/app.php
이 두 파일에서는 애플리케이션의 텍스트를 번역하기 위해 일부 키-값 쌍이 정의됩니다. 예를 들어 간단한 app.php 파일은 다음과 같습니다.
<?php return [ 'welcome' => '欢迎', 'login' => '登录', 'logout' => '退出登录', ];
여기에는 애플리케이션의 "환영", "로그인" 및 "로그아웃" 텍스트를 번역하는 데 사용되는 세 개의 키-값 쌍이 정의되어 있습니다. 영어 버전의 경우 en-us/app.php 파일을 생성하고 위의 중국어 번역을 영어 번역으로 바꿀 수 있습니다.
<?php return [ 'welcome' => 'Welcome', 'login' => 'Log in', 'logout' => 'Log out', ];
응용 프로그램에서는 일반적으로 사용자의 언어 설정에 따라 해당 언어 팩을 읽으십시오. 다음 코드를 사용하여 현재 언어 설정을 가져올 수 있습니다.
$lang = $request->lang();
여기에서는 $request 개체의 lang() 메서드가 사용되어 요청 개체에서 lang 매개변수를 가져올 수 있습니다. 일반적으로 이 매개변수는 사용자의 언어 설정을 저장합니다. 예:
http://example.com/?lang=zh-cn http://example.com/?lang=en-us
여기에서 lang 매개변수가 지정되지 않은 경우 브라우저의 Accept-Language 헤더를 읽어 사용자의 언어 설정을 추측할 수 있습니다.
다음으로 lang() 함수를 사용하여 현재 언어 팩을 읽을 수 있습니다. 예:
$lang = $request->lang(); app()->setLocale($lang); $translations = lang('app');
여기서 app() 함수는 응용 프로그램 개체를 가져온 다음 setLocale()을 통해 현재 로케일을 설정하는 데 사용됩니다. 방법 . 마지막으로 lang() 함수를 사용하여 현재 로케일의 모든 번역이 포함된 배열을 반환하는 언어 팩을 읽습니다.
언어 팩과 번역 배열을 사용하면 애플리케이션에서 번역을 사용할 수 있습니다. 예를 들어 템플릿에서 태그를 사용하여 번역을 얻을 수 있습니다.
<p>{{ __('app.welcome') }}</p>
여기서 __ 함수는 번역을 얻는 데 사용됩니다. __ 함수는 도트 메서드에 따라 들어오는 문자열을 배열로 구문 분석한 다음 번역 배열에서 해당 번역을 찾습니다.
해당 번역이 없으면 __ 함수는 원래 문자열을 반환합니다. 따라서 영어 문자열을 __ 함수에 기본값으로 전달할 수 있습니다. 예를 들면 다음과 같습니다.
<p>{{ __('app.welcome', ['default' => 'Welcome']) }}</p>
여기서 기본 매개변수가 지정되며 해당 값은 'Welcome'입니다. 'welcome' 키에 해당하는 번역이 번역 배열에서 발견되지 않으면 __ 함수는 이 기본값을 반환합니다.
때로는 양식 유효성 검사 오류 메시지와 같은 일부 사용자 정의 번역을 추가해야 할 때가 있습니다. 다음 코드를 사용하여 사용자 정의 번역을 추가할 수 있습니다.
use thinkacadeLang; Lang::load([ 'validation.custom' => [ 'email' => [ 'required' => '请填写邮箱地址', 'email' => '请输入有效的邮箱地址', ], ], ]);
여기서는 Lang 클래스의 load() 메서드를 사용하여 사용자 정의 번역을 추가합니다. load() 메소드는 언어 패키지의 구조에 따라 구성되고 사용자 정의 번역을 추가하는 데 사용되는 매개변수로 배열을 허용합니다.
위의 예에서는 'email' 키에 대한 사용자 정의 번역이 포함된 유효성 검사 사용자 정의 언어 팩이 추가되었습니다. 이러한 번역은 시스템 기본 번역보다 우선 적용됩니다.
다국어 번역 작업에 ThinkPHP6을 사용하면 매우 편리합니다. 언어팩을 준비한 후 언어팩을 읽고 번역을 사용하면 됩니다. 사용자 정의 번역을 추가해야 하는 경우 방법은 매우 간단합니다. 다중 언어 지원은 애플리케이션의 유용성을 향상시킬 뿐만 아니라 사용자 요구 사항을 더 잘 충족하고 사용자 경험을 향상시킵니다.
위 내용은 다국어 번역 작업에 ThinkPHP6을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!