2013-08-08 3 views
1

lang을 기반으로하는 라우팅을 변경하려면 Symfony 1.2에서 사용할 수 있습니까? 내 시스템에서언어 기반 라우팅 변경, URL 부분 번역

2 랭 가문이 있습니다 - EN은, PL이 같은

샘플 경로보기 : 나는 무엇을 달성하고자하는

produkt_show: 
    url: /products/:pslug/:idslug 
    param: { module: product, action: show } 

: 나는 produkt_show 경로가 일치 [및 생성] 할 다른 URL 현재 언어에 따라 다릅니다. 그래서 PL에서 내 URL은 다음과 같이 보일 것입니다 :

/produkty/:pslug/:idslug 

같은 이름을 가진 경로는 필수적입니다. url_for/link_to 등의 호출을 모두 변경할 수없고 다른 경로 이름을 전달할 수 없습니다.

불명확 한 점이 있으면 먼저 질문하십시오.

UPDATE

는 j0k의 조언에 따라 나는 플러그인을 사용했다. 나는 zxI18nRoutingPlugin을 선택했다. 부분적으로 작동하는 것처럼 보입니다. 브라우저 주소 입력에 문자 그대로 글을 쓰면 올바른 경로로 URL이 해석됩니다. 그러나 아직 번역되지 않은 URL을 생성합니다.

예컨대

내 경로 :

contact_form: 
    url: /contact_form 
    param: { module: contact_request, action: new} 

트랜스 단위 :

 <trans-unit> 
      <source>contact_form</source> 
      <target>formularz-kontaktowy</target> 
     </trans-unit> 

생성 된 URL :

<a href="/contact_form" title="Kontakt" class="menu-contact"> Kontakt </a> 

하지만 BASE_URL/formularz을-kontaktowy 입력하면 - 바로 조치가 실행됩니다. 나는이와 붙어 있기 때문에

Request: 

    parameterHolder: 
     action: new 
     module: contact_request 
     sf_culture: pl 
    attributeHolder: 
     sf_route: 'sfRoute Object()' 

User 

    options: 
     auto_shutdown: false 
     culture: pl 
     default_culture: pl_PL 
     use_flash: true 
     logging: '1' 
     timeout: 10800 
    attributeHolder: 
     symfony/user/sfUser/attributes: { LAST_CATEGORY_ID_PATH_VAR: null, product_elements_on_page: 50 } 
    culture: pl_PL 

난 그냥 그것을 알아낼 수 없습니다, 나는, 도움, 제안, 아무것도 감사하겠습니다 :

이 dev에 도구 모음에서 내 구성입니다.

업데이트 2

factories.yml :

all: 
    routing: 
# class: sfPatternRouting 
# param: 
#  generate_shortest_url:   true 
#  extra_parameters_as_query_string: true 
    class: zxPatternI18NRouting 
    param: 
    generate_shortest_url:   true 
    extra_parameters_as_query_string: true 
    use_cultures:      [pl, de, en, ru] # destination cultures. Plugin looks for translations for these cultures. 
    culture_into_url:     false  # defines if culture should be always placed in url 

답변

2

(또는 적어도 당신에게 당신 자신이 할 수있는 방법 준) 이러한 경우를 처리 할 수있는 플러그인이 있습니다

  • zxI18nRoutingPlugin

    zxI18nRoutingPlugin은 sfPatternRouting 클래스를 확장하여 경로 패턴 정적 텍스트를 다른 언어로 번역 할 수 있습니다.

  • gbI18nRoutePlugin

    쉬운 방법

    은 국제화의 라우팅을한다.

An other option

+0

은 sooo를 멋진 그 .. 경로 내부 등/PL/제품처럼/EN/제품, 문화를 추가 할 수 있습니다. 감사. 전에 마지막 옵션에 대해 알았지 만 고객이 원하는 솔루션이 아닙니다. 나는 플러그인을 사용하고 그들이 일하면 얼마 동안 글을 쓰려고 노력할 것이다. – tiriana

+0

zxI18nRoutingPlugin을 사용했는데 부분적으로 작동하는 것으로 보입니다. 그러나 아직 변환되지 않은 URL이 생성됩니다. 말 그대로 입력 된 주소로 입력하면 번역 된 경로를 해석합니다. 나는 잠시 후에 나의 질문에 모범을 보일 것이다. – tiriana

+0

어떻게 생성 하시겠습니까? 'cultures_into_url'의 가치는 무엇입니까? 'use_cultures'의 가치는 무엇입니까? – j0k