 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Многоязычный
| |
| kRiSyo | Дата: Пятница, 18.01.2013, 00:54 | Сообщение # 1 |
|
Новенький
Группа:
Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус: 
| Как сделать много язычный мод искал в интернете хотя бы пример мод или скрипт ничего не смог найти есть пару идей но они будут как всегда не так работать или нагружать сервер
подскажите как это можно сделать и если можно пример...
|
| |
|
|
| ZiGGi | Дата: Пятница, 18.01.2013, 01:27 | Сообщение # 2 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус: 
| Если ты задумал систему, которая позволяла бы на одном сервере использовать сразу несколько языков, то не советую, ибо это не сайт. Англоязычному игроку не понравится видеть кириллицу(наверняка ещё и крякозябрами). Система, которая позволяет запускать мод с определённым языком для всех сразу, есть в Open-GTO. Сама система: https://github.com/ziggi/Open-GTO/blob/master/lang.inc Файл с текстом: https://github.com/ziggi....ian.gto
Хотя, если требуется перевести мод на язык, который обычно знают те, кто знает русский(украинский, например), то можно использовать сразу несколько языков. В этом случае эту систему нужно переделать путём добавления нового массива с текстом(иначе никак). То есть в памяти у сервера будет храниться сразу несколько переводов, а это не экономно.
Бложе [indent]Мой блог Уроки по Pawn[/indent]
Open-GTO [indent]Блог разработчиков GitHub: https://github.com/Open-GTO/Open-GTO Сборки мода с сервером тут[/indent]
|
| |
|
|
| kRiSyo | Дата: Пятница, 18.01.2013, 13:05 | Сообщение # 3 |
|
Новенький
Группа:
Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус: 
| я подумываю сделать возможность настройки чата чтобы Англо язычные игроки могли убрать чат Русско язычных игроков. и да мне именно надо 2 языка в моде.
Цитата (ZiGGi) Хотя, если требуется перевести мод на язык, который обычно знают те, кто знает русский(украинский, например), то можно использовать сразу несколько языков. В этом случае эту систему нужно переделать путём добавления нового массива с текстом(иначе никак). То есть в памяти у сервера будет храниться сразу несколько переводов, а это не экономно.
начиная с этого можно было бы по подробней ?
|
| |
|
|
| Weddew | Дата: Пятница, 18.01.2013, 15:26 | Сообщение # 4 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (ZiGGi) То есть в памяти у сервера будет храниться сразу несколько переводов, а это не экономно. А почему бы не подгружать данные динамически?
www.weddew-shop.ru
|
| |
|
|
| ZiGGi | Дата: Пятница, 18.01.2013, 16:01 | Сообщение # 5 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус: 
| Цитата (Weddew) А почему бы не подгружать данные динамически? При каждом действии, каждого игрока, где требуется вывести текст(то есть практически всегда) читать файл или делать запрос в базу данных? Нет, это убьёт сервер.
Цитата (kRiSyo) начиная с этого можно было бы по подробней ? В Open-GTO файл с текстом разбит на под категории, пример: Код [1 gangs] 0: текст 1: текст Лучше, наверное, сделать без них, то есть массив с текстом будет вида Код new lang_texts[2000][MAX_STRING+10];
Нам его нужно адаптировать к двум языкам: Код new lang_texts[2][2000][MAX_STRING+10];
И немного переделать функцию загрузки: Код stock lang_read(lang, filename[]) { new File:fohnd, tmpres[MAX_STRING+32], tmp1[4], i, pos_s;
fohnd = fopen(filename, io_read); if (!fohnd) { return GameMSG("ERROR: No such language file '%s'", filename); } while (fread(fohnd, tmpres, sizeof(tmpres))) { if (strlen(tmpres) == 0 || strfind(tmpres, "//", true) == 0) continue; pos_s = strfind(tmpres, ":", true); if (pos_s != -1) { check_bb(tmpres); strmid(tmp1, tmpres, 0, pos_s); strmid(lang_texts[lang][strval(tmp1)], tmpres, pos_s+2, strlen(tmpres) - pos_s); } } fclose(fohnd); return 1; }
Бложе [indent]Мой блог Уроки по Pawn[/indent]
Open-GTO [indent]Блог разработчиков GitHub: https://github.com/Open-GTO/Open-GTO Сборки мода с сервером тут[/indent]
|
| |
|
|
| kRiSyo | Дата: Пятница, 18.01.2013, 17:01 | Сообщение # 6 |
|
Новенький
Группа:
Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус: 
| ZiGGi, я не хочу использовать текст с файла просто чтобы в моде было 2 языка... к примеру при коннекте диалог рус енг...
я думал использовать проверку, создается переменная 0. Проверка если RUS = 1 то русский текст, если ENG = 1 то английски текст. но... мне кажется что есть и другой способ например %s %s format rus eng...Добавлено (18.01.2013, 16:56) --------------------------------------------- enum pInfo { pRUS, pENG }
В коннект ShowPlayerDialog(playerid,1234,DIALOG_STYLE_LIST,"Langs","ENG\nRUS","Ok","Quit");
сам диалог public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch( dialogid ) { case 1234: { if (!response) return true; if(response) { switch(listitem) { case 0: {PlayerInfo[playerid][pENG] = 1;} case 1: {PlayerInfo[playerid][pRUS] = 1;} } } } } return 1; }
ну и текст он у меня в коннекте
if (PlayerInfo[playerid][pRUS] == 1) { SendClientMessage(playerid,0xAAAAAAAA,"Добро пожаловать на сервер {FFFFFF}Freeroam DeathMatch"); } if (PlayerInfo[playerid][pENG] == 1) { SendClientMessage(playerid,0xAAAAAAAA,"Welcome to the server {FFFFFF}Freeroam DeathMatch"); } Добавлено (18.01.2013, 17:01) --------------------------------------------- на чирикал а не работает :crazy:...
|
| |
|
|
| ZiGGi | Дата: Пятница, 18.01.2013, 17:11 | Сообщение # 7 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус: 
| Цитата (kRiSyo) я думал использовать проверку, создается переменная 0. Проверка если RUS = 1 то русский текст, если ENG = 1 то английски текст. Ну это ужасный метод, он приводит к дубликации кода. Ну и это сложно переводить, когда текст в одном файле, то можно просто передать этот файл переводчику, не знающему языков программирования(ну или весь файл через Google Translator перегнать ).
Бложе [indent]Мой блог Уроки по Pawn[/indent]
Open-GTO [indent]Блог разработчиков GitHub: https://github.com/Open-GTO/Open-GTO Сборки мода с сервером тут[/indent]
|
| |
|
|
|
 |
|
 | |
| |
|