Я проектирую сайт с поддержкой нескольких языков. Наш основной язык - турецкий. Я не хочу, пока администратор вставляет турецкие данные, пустые другие поля на иностранных языках. Поэтому, когда турецкая вставка данных заканчивается столбцами «_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', что вызывает проблемы при восстановлении данных. Потому что при использовании '$ lang-> selected', например' $ row ["fruit {$ lang-> selected}"] ', поиск программ' fruit_tr', но нет. С другой стороны, такой практической схемы кодирования не существует. –