2010-05-13 2 views
-1

두 개의 다른 버전의 변환 배열을 병합 중입니다. 최신 버전은 수천 줄의 코드에서 많은 변화를 겪고 있습니다.내용 대신 가변 구조체를 에코하기

이렇게하려면 새 파일 (동일한 구조와 키 이름을 사용)을로드하고 평가 한 다음 이전 버전을로드하고 평가하여 배열의 새로운 변환되지 않은 값을 이미 변환 한 값으로 덮어 씁니다.

지금까지 너무 좋아!

그러나이 새로운 병합 배열에 대한 생성자를 에코 할 수 있기 때문에 잘라내어 새 번역 파일에 붙여 넣을 수 있으며 작업을 완료해야합니다 (나머지 번역은 따로 작성해야합니다 ..) .

코드는 다음과 같습니다 (다른 키를 많이뿐만 아니라 인덱스) 같습니다

$lang["index"]["chart1_label1"] = "Subscribed"; 
$lang["index"]["chart1_label2"] = "Unsubscribed"; 

그리고 이전을 ..

$lang["index"]["chart1_label1"] = "Subscrito"; 
$lang["index"]["chart1_label2"] = "Não subscrito"; 

두 개의 파일을로드 한 후, 나는 끝낼 $ lang 배열을 병합했습니다. 그런 다음 같은 형식으로 에코를 적용하여 프로젝트에서 사용할 수 있습니다. 나는이 같은 일을하지만

..

foreach ($lang as $key => $value) { 
    if (is_array($value)) { 
     foreach ($value as $key2 => $value2) { 
      echo "$lang['".$key."']"; // ... etc etc 
     } 
    } 
} 

는 ..obviously 나는 "ArrayIndex"등 등 대신 "$ LANG"의 수. $ lang을 평가하지 않고 echo하는 법 ..? 일단 이것이 작동하면, 나머지 괄호 등을 추가 할 수 있습니다. (나는 그들이 실종되었다는 것을 알지만)이 부분을 먼저 작동시키고 싶습니다.

이렇게하는 것이 더 좋은 방법이라면, 모든 귀 역시!

감사합니다.

편집 :

것은 정말이었다 this 찾던 :

"참고 :이 발생할 때 특수 문자에 대한 세 가지 다른 구문, 변수는 달리 탈출 시퀀스는 확장되지 않습니다 작은 따옴표로 묶인 문자열. "

그래서 탈출 할 필요가 없습니다. 배열을 병합하는 것에 관해서는 array_merge()에 대한 PHP 매뉴얼 페이지에 훌륭한 재귀 적 배열 병합 함수가 있습니다.이 함수는 또한 편리합니다.

누구든지 downvoted! 나도 사랑해.

답변

1

중 하나를 $ 탈출 : "\$lang" 또는 작은 따옴표를 사용 : 어떻게 출력 a를 할 당신이 정말로 전체 질문은 그냥 "로 귀결 경우, 스토리의 전체 페이지를 게시 할 필요가 없습니다 '$lang'

주 달러 기호 PHP "

+1

뭔가 간단하다고 생각했습니다. 감사합니다. 문맥 안에 문제를두기에 관하여 요점은 다만 "방법에 관하여 duz i maek hambureger", 그러나 어쩌면 누군가 정확하게 동일한 일을하는 더 나은 기술을 알고있다이다. 나는 토론이 포럼의 핵심이라고 생각했다. ..? ;) – dmp

1

기능이 있지만,이 끔찍한 엉망의 목적을 이해하지 못합니다.
모두 너무 ...수동

다중 언어 사이트의 업계 표준 인 gettext을 사용하지 않는 이유는 무엇입니까?

또는 일반 PHP보다 안정적인 다른 형식이 있습니까?
프로그래밍 코드는 이 아니며은 자동으로 쓰도록되어 있습니다.

+0

기술 지식이없는 사람 (예 : 고객)이 편집자에게 편집을 허용하기 전까지는 겟트 텍스트가 좋습니다. 그렇다면 당신은 당신이 깊고 깊은 문제에 처해 있다는 것을 깨닫게됩니다. var_export() 팁을 주셔서 감사합니다. – dmp

+0

또한, 이것은 내 코드가 아니므로, 개인적으로 이런 종류의 물건에 대한 XML과 함께 간다. – dmp

+0

PHP 배열은 .po 파일보다 더 바보 같은 생각이 아니다. –