17:59
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
        
[SA-MP] Hosted Tab (120)
DieSeL 24.09.2017 20:30
GTA IV Mod Installer (5)
jasper2 23.09.2017 02:50
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Многоязычный (Многоязычный Мод)
Многоязычный
kRiSyoДата: Пятница, 18.01.2013, 00:54 | Сообщение # 1
Новенький
Группа: Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус:
Как сделать много язычный мод искал в интернете хотя бы пример мод или скрипт ничего не смог найти есть пару идей но они будут как всегда не так работать или нагружать сервер crazy

подскажите как это можно сделать и если можно пример...

ZiGGiДата: Пятница, 18.01.2013, 01:27 | Сообщение # 2
Мастер джэдай
Группа: Продвинутые
Сообщений: 2651
Награды: 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
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (ZiGGi)
То есть в памяти у сервера будет храниться сразу несколько переводов, а это не экономно.

А почему бы не подгружать данные динамически?




www.weddew-shop.ru
ZiGGiДата: Пятница, 18.01.2013, 16:01 | Сообщение # 5
Мастер джэдай
Группа: Продвинутые
Сообщений: 2651
Награды: 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
Мастер джэдай
Группа: Продвинутые
Сообщений: 2651
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Цитата (kRiSyo)
я думал использовать проверку, создается переменная 0. Проверка если RUS = 1 то русский текст, если ENG = 1 то английски текст.

Ну это ужасный метод, он приводит к дубликации кода. Ну и это сложно переводить, когда текст в одном файле, то можно просто передать этот файл переводчику, не знающему языков программирования(ну или весь файл через Google Translator перегнать crazy ).



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Многоязычный (Многоязычный Мод)
Страница 1 из 11
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM