Веб блог и не только | Знания недостаточно, необходимо применение

Авг/10

30

Локализация во flash

Недавно столкнулся с вопросом локализации (переводом) 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")

Eng version

RSS Feed

Комментарии (6) для поста Локализация во flash

SnoUweR | 10.09.2010 в 13:22

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

Комментировал admin | 10.09.2010 в 13:47

Рад помочь )

SnoUweR | 29.10.2010 в 08:27

А как ты добился поддержки кириллицы во Flixel’e?

Комментировал Andrey | 29.10.2010 в 15:52

Нужно шрифт (org\flixel\data\nokiafc22.ttf) заменить на Verdana например. Но горячие клавиши на русском нельзя будет добавлять.

SnoUweR | 29.10.2010 в 16:16

Когда-то уже пытался так сделать, но ничего не получилось. Сейчас повторил – всё нормально.
Спасибо :)

Комментировал Andrey | 29.10.2010 в 16:28

Пожалуйста ))

Оставте комментарий!

<< IE6 png fix

Mu Online Live >>

Поиск

Theme Design by devolux.org