다국어 지원 사이트를 설계하고 있습니다. 우리의 주요 언어는 터키어입니다. 관리자가 터키어 데이터를 삽입하는 동안 외국어로 된 다른 필드를 비워 두는 것을 원하지 않습니다. 따라서 터키어 데이터 삽입이 "_tr"열로 끝나고 "_en"및 "_de"로 끝나는 외국어 필드에서 자동으로 번역 된 Yandex Translator 데이터를 가져 오려고합니다. 번역 된 데이터에서 배열 만들기 및 PHP에서 배열 병합
삽입됩니다 이런 내 데이터 구조 :이 같은
$data = array(... 'parent_id' => 234, 'date' => "2014-08-31 23:07:47", 'status' => 1);
내가에 추가 할 "..."
$translated = array('fruit_tr' => "Elma", 'fruit_en' => "Apple", 'fruit_de' => "Apfel", 'color_tr' => "Kırmızı", 'color_en' => "Red", 'color_de' => "Rot");
여기 내 테이블 구조
시도 :
$from_turkish = array('fruit' => "Elma", 'color' => "Kırmızı");
public function Translate ($from_turkish) {
$langs = array("tr", "en", "de");
$translated = array();
foreach ($langs as $lang){
foreach ($from_turkish as $field_name => $value) {
$translated[] = array($field_name.'_'.$lang => YandexTrApi($value, 'tr', $lang));
}
}
return $translated;
}
YandexTrApi
함수는 변환 된 데이터를 반환합니다. 마지막으로,이 같은 array_merge
기능 사용 :
$data_array = array_merge($translated, $data);
를하지만이 같은 형태를 취할하지 않았다
$data_array = array('fruit_tr' => "Elma", 'fruit_en' => "Apple", 'fruit_de' => "Apfel", 'color_tr' => "Kırmızı", 'color_en' => "Red", 'color_de' => "Rot", 'parent_id' => 234, 'date' => "2014-08-31 23:07:47", 'status' => 1);
기본값으로 열을 지정하지 않고 항상 채워지는 이유는 무엇입니까? 그런 다음 쿼리에서 기본 언어 열이 비어 있으면 기본값으로 돌아갑니다. – Anthony
@Anthony - 'fruit'와 같은 기본 열이 있으면'color'가'fruit_en','color_en'처럼 채워지면서 문제가있는 데이터를 얻습니다. $ row [ "fruit {$ lang-> selected}"]'처럼'$ lang-> selected '를 사용할 때, 프로그램은'fruit_tr'를 검색하기 때문에 그렇지 않습니다. 반면에 이와 같은 실질적인 이익 코딩은 없습니다. –