세계화가 발전함에 따라 점점 더 많은 웹사이트와 애플리케이션이 다국어 지원을 제공해야 합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
