>백엔드 개발 >PHP 튜토리얼 >PHP는 다국어 지원을 위해 Symfony Translation 구성 요소를 어떻게 사용합니까?

PHP는 다국어 지원을 위해 Symfony Translation 구성 요소를 어떻게 사용합니까?

WBOY
WBOY원래의
2024-03-27 08:12:04662검색

php如何使用Symfony Translation组件进行多语言支持?

Symfony 번역 구성 요소는 다국어 사이트 개발을 단순화하는 데 사용할 수 있는 강력한 도구입니다. 이 글에서는 PHP와 Symfony Translation 컴포넌트를 사용하여 다국어 웹사이트를 구현하는 방법을 소개합니다.

Symfony 번역 구성요소가 무엇인가요?

Symfony 번역 구성 요소는 Symfony 프레임워크의 일부이며 다국어 사이트 개발을 단순화하는 데 사용됩니다. 리소스를 현지화하고 번역하는 간단하고 유연한 방법을 제공합니다. 개인 또는 전문 프로젝트에서 사용할 수 있습니다.

다국어 지원을 위해 Symfony Translation 구성 요소를 사용하는 방법은 무엇입니까?

Symfony Translation 컴포넌트를 사용하기 위해서는 번역 파일을 생성해야 합니다. 이는 일반적으로 번역할 파일과 해당 번역을 나열하는 YAML 파일입니다. 영어와 중국어로 사이트를 만들고 모든 텍스트 필드를 두 언어로 번역한다고 가정해 보겠습니다. 다음과 같이 파일을 생성할 수 있습니다.

1단계: 번역 파일 만들기

1. 파일을 저장할 src/translations 디렉터리를 만듭니다.

2. message.en.yaml(영어) 및 message.zh.yaml(중국어)이라는 두 개의 파일을 만듭니다.

3. 다음과 같이 각 파일에 번역을 추가합니다.

messages.en.yaml:

welcome: Welcome to our website!
about: About us
contact: Contact us

messages.zh.yaml:

welcome: 欢迎来到我们的网站!
about: 关于我们
contact: 联系我们

2단계: Symfony 프로젝트에서 번역 구성 요소를 사용합니다.

Symfony 번역 구성요소를 Symfony 프로젝트에 추가해야 합니다. Symfony 프로젝트를 생성하고 Symfony Translation 구성 요소를 설치했다고 가정하면 다중 언어 지원을 구현하려면 컨트롤러나 템플릿에서 이를 호출해야 합니다. 여기서는 컨트롤러에서 이를 구현하는 방법을 보여 드리겠습니다.

1. 필요한 네임스페이스 추가

use SymfonyComponentTranslationTranslatorInterface;
use SymfonyComponentHttpFoundationResponse;

2. 컨트롤러 만들기

public function index(TranslatorInterface $translator)
{
    $welcome = $translator->trans('welcome');
    $about = $translator->trans('about');
    $contact = $translator->trans('contact');

    return new Response(
        '<html><body>'.$welcome.' '.$about.' '.$contact.'</body></html>'
    );
}

3. 컨트롤러에서 Symfony 번역 구성 요소를 호출합니다

이 예에서는 Symfony의 자동 서비스 삽입 메커니즘을 사용합니다. 또는 생성자 주입을 사용하십시오. 컨트롤러 메소드에서는 번역기를 인스턴스화하고 trans 메소드를 사용하여 해당 번역을 얻습니다. 이 예에서는 trans 메소드를 호출하여 message.en.yaml 또는 message.zh.yaml 파일에서 환영, 정보 및 연락처 텍스트의 번역된 내용을 가져옵니다.

4. 경로에 컨트롤러를 바인딩합니다

index:
    path: /{_locale}
    controller: AppControllerDefaultController::index
    requirements:
        _locale: '%app_locales%'

위 경로에서는 {_locale}을 사용하여 웹사이트의 언어 설정을 나타냅니다. 사용자가 사용하는 언어를 식별하는 매개변수입니다. 예를 들어 사용자가 영어를 사용하는 경우 번역자가 message.en.yaml 파일에서 번역을 찾을 수 있도록 "en"을 _locale 변수에 전달할 수 있습니다.

마지막으로 config/packages/translations.yaml 파일에 구성을 추가하여 지원되는 언어를 지정하세요.

# config/packages/translations.yaml
framework:
    default_locale: '%locale%'  # 站点默认语言
    translator:
        default_path: '%kernel.project_dir%/translations'
        fallbacks:
          - '%locale%'
        paths:
          - '%kernel.project_dir%/tests/translations'
          - '%kernel.project_dir%/vendor/symfony/form/Resources/translations'
          - '%kernel.project_dir%/vendor/symfony/security-bundle/Resources/translations'
          - '%kernel.project_dir%/src/MyBundle/Resources/translations'
        loaders:
          xlf: 'SymfonyComponentTranslationLoaderXliffFileLoader'
          yaml: 'SymfonyComponentTranslationLoaderYamlFileLoader'

다국어 지원을 위해 Symfony Translation 컴포넌트를 사용하는 과정입니다. 위의 단계에 따라 원하는 다국어 사이트를 만들 수 있습니다. 이 접근 방식은 크로스 플랫폼이며 모든 주요 언어와 지역을 지원합니다.

위 내용은 PHP는 다국어 지원을 위해 Symfony Translation 구성 요소를 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.