문제

내가 건축한 영국/프랑스 웹 사이트는지 궁금했 있는 경우에는 최상의 방법이 같은 작업입니다.

  1. 중복한 사이트를 만들고 프랑스와 영국 폴더와 적절한 사이트 내부입니다.

  2. 하기 위하여 PHP 스왑 콘텐츠에 html 태그가 있습니다.예를 들어.if($lang=='en'):

  3. 사용 php 스왑 콘텐츠만 떠나는 html 태그에 대해 동일한 모두.예를 들어.문 경우 모든 장소입니다.는 것이 나쁜 것은 효율성에 대한?

다른 어떤 제안을 감사하겠

도움이 되었습니까?

해결책

우리는 프레임워크에 위치한 경우(만)우리의 사이트 간 국제는 다음과 같이...

폴더 구조;

/
  lang/
    english/
      images/
      text/
    dutch/
      images/
      text/

어떤 텍스트나 이미지어 특정 제거 페이지에서 직접 교체하여 상수입니다.예를 들면 로그인 화면에서,우리가 드롭;

echo TEXT_LOGIN_WELCOME;

에 정의된/lang/english/text/login.php 으로;

define('TEXT_LOGIN_WELCOME', 'Welcome, please login:');

그러나/lang/dutch/text/login.php 그것은으로 정의된;

define('TEXT_LOGIN_WELCOME', 'Welcome, please login (in dutch):'); 

;-)

각 언어로 정의하는 파일의 이름은 정확히 동일한 페이지로 그것이 사용되는,그렇게 할 때 우리는 짐 공용 페이지리고 우리만 그는 언어 사용자가 말고 우리는 포함할 수 있습니다 해당 언어를 정의한 파일입니다.

좋은 일에 대해 이 시스템은 모든 언어로 정보가 중앙 집중식.추가해야 하는 경우 새로운 언어를 복사본(영어?) 폴더 이름을 바꾸 지퍼 모든 것을 보낼 번역 서비스 작업이 그들의 마법입니다.물론,단점은 이 시스템의 유지 모두 같은 언어와 컨텐츠 성장하는...사람이 어떤가있는 경우 밝은 아이디어와 이에 관해서는 다음을 듣고 싶어요 그들!

Btw,당신을 필요로 추측하는 사용자의 위치하여 IP,당신이를 확인 할 수 있습니다 geoIP.

다른 팁

템플릿 시스템을 사용하십시오. 스마트 템플릿 엔진 아마도 가장 잘 알려진 PHP 중 하나 일 것입니다. 템플릿 시스템은 당신이 달성하려는 정확한 목적에 도움이 될뿐만 아니라 컨텐츠에서 디스플레이 코드를 분리하여 페이지를 훨씬 쉽게 유지할 수 있습니다 (또한 다양한 콘텐츠 페이지에 동일한 템플릿을 사용할 수 있습니다. 비슷한 성격).

가장 간단한 방법으로 사용하는 것이 좋습니다 I18N 국제화 방법 & getText 카탈로그 (.PO 파일).
유명한 WordPress 프로젝트입니다 그것을 사용합니다.

1 -중복 사이트 전체 당신을 강제로 반복하는 모든 코드 터치로 최대 2 폴더:-[

2 -당신은 당신의 것을 의미 somenting 아

<?php if($lang=='en') { ?>  
  <p>English text</p>  
<? } else { ?>  
  <p>Text français</p>  
<? } ?>

이 솔루션은 완벽한 관리하는 두 개의 언어 같은 페이지입니다.
하지만 당신은 여전히 중복 태그가 있습니다.

3 -변경 내용만 그것은 정말 만족합니다.
어쩌면 증식의 경우에 문의 무게는 아래로 php 컴파일하기...모르겠습니다.
어쨌든 문서 더 할 수 있습니다 간결한 이 방법:

<?php            
  function interpreter($buffer) {
    $pieces = explode('#', $buffer);

    if (isset($_GET['lang'])) $begin=$_GET['lang'];
    else $begin = 1;  // 1 to display français, 2 to display english

    $tot = count($pieces);          

    for ($i=$begin; $i<$tot; $i+=3) {  // remove one language
    unset($pieces[$i]); }

    foreach ($pieces as $value) {  // recompose the text
    $output .= $value; }

    return $output;
  }

  ob_start("interpreter");      
?>

<a href="?lang=#1#2#">#Français#English#</a>
<p>#English text#Texte français#.</p>

<?php ob_end_flush() ?>

텍스트 사 ob_startob_end_flush 이 구문 분석된 후 php 컴파일.
즉 영향을 받는 문자열이 오는 예입니다.에서 에코 성명,내에 없 < ?php?> 태그입니다.
또한 컨텐츠에서 나오는 php 포함한 영향을 받습니다.
하지만 외부 css 나 자바스크립트.

한 관심을 유지하고 구분 # 지 않는 숙희 아직 다른 곳에서 사용.
어쩌면 당신은 당신이 선호하는 바꾸기 ||^^

의 코스를 미래에 적응할 수 있는 이 솔루션을 3 개 이상의 언어.그러나 있는 경우를 삽입하는"세 번째는 언어로 번역#"많은 선의 큰 위치,어쩌면에서 솔루션 MatW 맞는 당신입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top