2010-04-07 3 views
3

다른 언어로 작업 할 수 있도록 사이트를 업그레이드하고 있습니다.번역 된 텍스트 - 데이터베이스 또는 플랫 파일을 저장하고 검색하는 가장 빠른 방법은 무엇입니까?

내 계획은 텍스트 단락을 여러 언어로 저장하고 각 단락에 식별자를 제공하는 것입니다.


ID => '1'
간단한 => 'welcome_paragraph'
EN => '에 오신 것을 환영합니다 우리의 웹 사이트!'
de => '웹 사이트가 비어 있습니다!' 빨리

  • 쉽게 언제든지
  • 는 CMS를 통해 편집 된 검색
    • 요구 사항

      은 새로운 언어

    그래서 데이터베이스 테이블에이를 저장하는 가장 좋은 솔루션입니다

  • 을 추가?

    한 테이블, 각 언어에 대한 열 및 각 간단한에 대한 행 :

    ID, brief, en, de, es 
    

    또는 두 개의 테이블, breifs 하나, 번역과 하나 그리고 만약 그렇다면, 다음 중 가장 좋은 테이블 설정입니다 :

    각 페이지에서
    ID, brief 
    
    ID, language, translation 
    

    , 나는 .... 할 의도

    는 에코 $ 페이지 -> ($ 언어, $ 개요)를 번역; 각 페이지에

    SELECT translation FROM translations 
    WHERE language = 'es' AND brief = 'welcome_paragraph' 
    LIMIT 1 
    

    여러 번 :

    여러 번이있는 데이터베이스를 계속 전화하는 속도가 느린 것입니다 .... 텍스트의 요구 조각을 가져다? 그러므로 이것을 플랫 파일로 저장하는 더 좋은 방법이 있습니까? 또는 많은 번역이 들어있는에 업데이트 된 의 PHP 파일이 생성 되었습니까? 내가 젠드이 시간에 번역을 사용하여 고려하지 않고있어 Zend Translate page 의 예와 같이 많은

    $english = array(
    'message1' => 'message1', 
    'message2' => 'message2', 
    'message3' => 'message3'); 
    
    
    $german = array(
    'message1' => 'Nachricht1', 
    'message2' => 'Nachricht2', 
    'message3' => 'Nachricht3'); 
    

    ... 나는 그것에 비용이 가정?

    +0

    왜 'on the fly'가 생성 되었습니까? 런타임에 번역이 바뀔 것으로 예상하지 않습니까? 정상적인 정적 PHP가 포함되어 있지 않은 이유는 무엇입니까? – bobince

    +0

    "나는 지금 Zend Translate를 사용하여 돈을 지불하고 있다고 생각하지 않는다. 달러와 같은 비용을 의미한다면, 비용은 없습니다. Zend 프레임 워크는 BSD 라이센스에 따라 무료이며 오픈 소스입니다. 그것은 거의 무료입니다. –

    +0

    나는 "on the fly"를 바 꾸었습니다. 업데이 트해야합니다. 감사합니다. –

    답변

    3

    http://php.net/manual/en/book.gettext.php은 다국어 사이트

    당신이 행동에 gettext를보고 워드 프레스 좀 걸릴 수 있습니다에 대한 솔루션 입니다.

    +0

    나는 이것이 최선의 해결책이라는 데 동의한다. 데이터베이스 방식을 사용하면 캐싱을 구현해야합니다. 그렇지 않으면 엄청난 자원 낭비입니다. –

    관련 문제