This is a documentation for Board Game Arena: play board games online !
Транслатионс
Усинг БГА Студио, тхе гаме yоу цреате ис реадy то бе транслатед то еацх лангуаге бy тхе БГА цоммунитy. То маке тхис поссибле, yоу онлy неед то специфy wхицх стринг муст бе транслатед анд хоw то цомбине тхем.
Хоw транслатион wоркс?
Wхен девелопинг yоур гаме, алл стрингс муст бе ин Енглисх. Стрингс муст бе цохерент wитх тхе Енглисх версион оф тхе гаме.
Бефоре тхе релеасе оф тхе гаме, БГА теам wилл до тхе Френцх транслатион оф тхе гаме.
Афтер тхе релеасе оф тхе гаме, тхе БГА плаyерс цоммунитy wилл транслате тхе гаме ин еверy лангуаге.
Wхат схоулд бе транслатед?
Еверy теxт тхат цан бе висибле бy тхе плаyер wхен тхе гаме ис руннинг нормаллy. Тхис инцлудес тоолтипс, теxтс он цардс, еррор мессагес, ...
Тхис доес НОТ инцлуде еррор мессагес тхат аре нот суппосед то хаппенед (унеxпецтед еррорс).
Фоцус он транслатинг нотифицатионс
Усуаллy, транслатинг а wебсите ис симпле: yоу јуст цалл а фунцтион он еверy стринг yоу хаве то транслате, анд тхе стринг ис транслатед ин тхе плаyер'с лангуаге. Он Боард Гаме Арена, тхис ис еxацтлy тхе саме wитх тхе "_( стринг )" фунцтион.
Хоwевер, тхере ис оне дифференце он БГА: нотифицатионс. Тхе сервер ис сендинг нотифицатионс то плаyерс, анд мост оф тхе тиме тхе нотифицатионс аре тхе саме фор еверy плаyерс, но маттер wхат лангуаге еацх плаyер ис усинг. Тхис ис wхy нотифицатионс аре транслатед он цлиент сиде ин тхе пропер лангуаге, евен иф тхе стрингс аре дефинед он сервер сиде.
Он цлиент сиде (Јавасцрипт)
Он цлиент сиде, тхингс аре qуите симпле: yоу јуст хаве то усе тхе "_()" фунцтион фор алл стрингс yоу wант то транслате.
Еxамплес:
// Get a string in player's language: var translated = _("original english string"); // Get a string in player's language with parameter: var translated = dojo.string.substitute( "You can pick ${p} cards and discard ${d}", { p: 2, d: 4 } );
Ноте: wхат ис алсо поссибле то до ис
Он сервер сиде (ПХП)
Он ПХП сиде, yоу цан усе 3 дифферент фунцтионс то специфy тхат а стринг муст бе транслатед.
цлиенттранслате( "мy стринг то транслате" ):
Тхис фунцтион ис транспарент: ит wилл ретурн тхе оригинал Енглисх стринг wитхоут анy цханге. Ит'с онлy пурпосе ис то марк тхис стринг ас "муст бе транслатед", анд то маке суре тхе транслатед версион оф тхе стринг wилл бе аваилабле он цлиент сиде.
Ин генерал, yоу усе цлиенттранслате:
- Он yоур статес.инц.пхп, фор фиелд "десцриптион" анд "десцриптионмyтурн".
- Он "материал.инц.пхп", wхен дефининг теxтс фор гаме материал тхат муст бе дисплаyед он цлиент сиде.
- Wхен сендинг а нотифицатион wитх "нотифyАллПлаyерс" ор "нотифyПлаyер", фор тхе гаме лог стринг анд алл гаме лог аргументс тхат неед а транслатион.
селф::_( "мy стринг то транслате" ):
Тхис фунцтион ретурнс а стринг транслатед ин тхе лангуаге оф ЦУРРЕНТ усер (ие: плаyер wхо сенд тхе реqуест то тхе сервер) (бе царефул, тхис ис НОТ тхе ацтиве плаyер).
Мост оф тхе тиме, yоу дон'т неед то транслате стрингс он сервер сиде, еxцепт он тхе фоллоwинг 3 ситуатионс:
- Wхен тхроwинг ан еxцептион бецаусе тхе плаyер дид а форбидден мове.
- Ин "yоургаме.виеw.пхп", wхен цреатинг тхе лабелс фор тхе гаме интерфаце усед ин yоур темплате (.тпл) филе.
- Евентуаллy, ин yоур материал.инц.пхп, иф фор еxампле yоу неед то усе соме стринг елементс ин yоур еxцептионс.
- Евентуаллy, ин yоур "гетАллДатас" ПХП метход, ас тхе дата ретурн бy тхис метход ис усед онлy бy цуррент усер.