Недавно столкнулся с вопросом локализации (переводом) flash приложений. В итоге появился на свет такой вспомогательный класс:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | package Helpers { /** * ... * @author Andrey Volodko */ public class Lng { private static var lngArr:Object; // English strings - Also use if other keys are null public static var en:Object = { name:"-Tower defense-", version:"beta 0.1", preVersion:"alpha 0.1", play: "Play" }; // Russian strings public static var ru:Object = { name:"-Защита башен-", version:"бета 0.1", play: "Играть" }; /** * */ public function Lng() { } /** * Lng initialization. You must call it before. * Use: Lng.init(); */ static public function init():void { //lngArr = getDefinitionByName(lang) as Object; lngArr = en; } /** * Set language * Use: Lng.setLng(Lng.ru); */ static public function setLng(slang:Object):void { lngArr = slang; } /** * Localization helper * Use: Lng.get("name"); */ static public function get(sname:String):String { if(lngArr[sname]==null) return en[sname]; else return lngArr[sname]; } } } |
Для использования этот код нужно сохранить в файл Helpers/Lng.as, затем подключить добавив строку
1 | import Helpers.Lng; |
в файле где нужно использовать локализацию.
Теперь нужно провести инициализацию с помощью следующих строк кода:
1 2 | Lng.init(); Lng.setLng(Lng.ru); |
И наконец мы можем использовать наш класс вот так:
1 | Lng.get("name") |
Комментарии (6) для поста Локализация во flash
SnoUweR | 10.09.2010 в 13:22
SnoUweR | 29.10.2010 в 08:27
А как ты добился поддержки кириллицы во Flixel’e?
SnoUweR | 29.10.2010 в 16:16
Когда-то уже пытался так сделать, но ничего не получилось. Сейчас повторил – всё нормально.
Спасибо
Оставте комментарий!
<< IE6 png fix


Спасибо, так раз хотел сделать поддержку нескольких языков в игре на Flixel’e