1 // ASLocalizer.cpp
2 // Copyright (c) 2017 by Jim Pattee <jimp03@email.com>.
3 // This code is licensed under the MIT License.
4 // License.md describes the conditions under which this software may be distributed.
5 //
6 // File encoding for this file is UTF-8 WITHOUT a byte order mark (BOM).
7 //    русский     中文(简体)    日本語     한국의
8 //
9 // Windows:
10 // Add the required "Language" to the system.
11 // The settings do NOT need to be changed to the added language.
12 // Change the "Region" settings.
13 // Change both the "Format" and the "Current Language..." settings.
14 // A restart is required if the codepage has changed.
15 //		Windows problems:
16 //		Hindi    - no available locale, language pack removed
17 //		Japanese - language pack install error
18 //		Ukranian - displays a ? instead of i
19 //
20 // Linux:
21 // Change the LANG environment variable: LANG=fr_FR.UTF-8.
22 // setlocale() will use the LANG environment variable on Linux.
23 //
24 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
25  *
26  *   To add a new language to this source module:
27  *
28  *   Add a new translation class to ASLocalizer.h.
29  *   Update the WinLangCode array in ASLocalizer.cpp.
30  *   Add the language code to setTranslationClass() in ASLocalizer.cpp.
31  *   Add the English-Translation pair to the constructor in ASLocalizer.cpp.
32  *
33  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
34  */
35 
36 //----------------------------------------------------------------------------
37 // headers
38 //----------------------------------------------------------------------------
39 
40 #include "ASLocalizer.h"
41 
42 #ifdef _WIN32
43 	#include <windows.h>
44 #endif
45 
46 #ifdef __VMS
47 	#define __USE_STD_IOSTREAM 1
48 	#include <assert>
49 #else
50 	#include <cassert>
51 #endif
52 
53 #include <cstdio>
54 #include <iostream>
55 #include <clocale>		// needed by some compilers
56 #include <cstdlib>
57 #include <typeinfo>
58 
59 #ifdef _MSC_VER
60 	#pragma warning(disable: 4996)  // secure version deprecation warnings
61 #endif
62 
63 #ifdef __BORLANDC__
64 	#pragma warn -8104	    // Local Static with constructor dangerous for multi-threaded apps
65 #endif
66 
67 #ifdef __INTEL_COMPILER
68 	#pragma warning(disable:  383)  // value copied to temporary, reference to temporary used
69 	#pragma warning(disable:  981)  // operands are evaluated in unspecified order
70 #endif
71 
72 #ifdef __clang__
73 	#pragma clang diagnostic ignored "-Wdeprecated-declarations"  // wcstombs
74 #endif
75 
76 namespace astyle {
77 
78 #ifndef ASTYLE_LIB
79 
80 //----------------------------------------------------------------------------
81 // ASLocalizer class methods.
82 //----------------------------------------------------------------------------
83 
ASLocalizer()84 ASLocalizer::ASLocalizer()
85 // Set the locale information.
86 {
87 	// set language default values to english (ascii)
88 	// this will be used if a locale or a language cannot be found
89 	m_localeName = "UNKNOWN";
90 	m_langID = "en";
91 	m_lcid = 0;
92 	m_subLangID.clear();
93 	m_translation = nullptr;
94 
95 	// Not all compilers support the C++ function locale::global(locale(""));
96 	char* localeName = setlocale(LC_ALL, "");
97 	if (localeName == nullptr)		// use the english (ascii) defaults
98 	{
99 		fprintf(stderr, "\n%s\n\n", "Cannot set native locale, reverting to English");
100 		setTranslationClass();
101 		return;
102 	}
103 	// set the class variables
104 #ifdef _WIN32
105 	size_t lcid = GetUserDefaultLCID();
106 	setLanguageFromLCID(lcid);
107 #else
108 	setLanguageFromName(localeName);
109 #endif
110 }
111 
~ASLocalizer()112 ASLocalizer::~ASLocalizer()
113 // Delete dynamically allocated memory.
114 {
115 	delete m_translation;
116 }
117 
118 #ifdef _WIN32
119 
120 struct WinLangCode
121 {
122 	size_t winLang;
123 	char canonicalLang[3];
124 };
125 
126 static WinLangCode wlc[] =
127 // primary language identifier http://msdn.microsoft.com/en-us/library/aa912554.aspx
128 // sublanguage identifier http://msdn.microsoft.com/en-us/library/aa913256.aspx
129 // language ID http://msdn.microsoft.com/en-us/library/ee797784%28v=cs.20%29.aspx
130 {
131 	{ LANG_BULGARIAN,  "bg" },		//	bg-BG	1251
132 	{ LANG_CHINESE,    "zh" },		//	zh-CHS, zh-CHT
133 	{ LANG_DUTCH,      "nl" },		//	nl-NL	1252
134 	{ LANG_ENGLISH,    "en" },		//	en-US	1252
135 	{ LANG_ESTONIAN,   "et" },		//	et-EE
136 	{ LANG_FINNISH,    "fi" },		//	fi-FI	1252
137 	{ LANG_FRENCH,     "fr" },		//	fr-FR	1252
138 	{ LANG_GERMAN,     "de" },		//	de-DE	1252
139 	{ LANG_GREEK,      "el" },		//	el-GR	1253
140 	{ LANG_HINDI,      "hi" },		//	hi-IN
141 	{ LANG_HUNGARIAN,  "hu" },		//	hu-HU	1250
142 	{ LANG_ITALIAN,    "it" },		//	it-IT	1252
143 	{ LANG_JAPANESE,   "ja" },		//	ja-JP
144 	{ LANG_KOREAN,     "ko" },		//	ko-KR
145 	{ LANG_NORWEGIAN,  "nn" },		//	nn-NO	1252
146 	{ LANG_POLISH,     "pl" },		//	pl-PL	1250
147 	{ LANG_PORTUGUESE, "pt" },		//	pt-PT	1252
148 	{ LANG_ROMANIAN,   "ro" },		//	ro-RO	1250
149 	{ LANG_RUSSIAN,    "ru" },		//	ru-RU	1251
150 	{ LANG_SPANISH,    "es" },		//	es-ES	1252
151 	{ LANG_SWEDISH,    "sv" },		//	sv-SE	1252
152 	{ LANG_UKRAINIAN,  "uk" },		//	uk-UA	1251
153 };
154 
setLanguageFromLCID(size_t lcid)155 void ASLocalizer::setLanguageFromLCID(size_t lcid)
156 // Windows get the language to use from the user locale.
157 // NOTE: GetUserDefaultLocaleName() gets nearly the same name as Linux.
158 //       But it needs Windows Vista or higher.
159 //       Same with LCIDToLocaleName().
160 {
161 	m_lcid = lcid;
162 	m_langID = "en";	// default to english
163 
164 	size_t lang = PRIMARYLANGID(LANGIDFROMLCID(m_lcid));
165 	size_t sublang = SUBLANGID(LANGIDFROMLCID(m_lcid));
166 	// find language in the wlc table
167 	size_t count = sizeof(wlc) / sizeof(wlc[0]);
168 	for (size_t i = 0; i < count; i++)
169 	{
170 		if (wlc[i].winLang == lang)
171 		{
172 			m_langID = wlc[i].canonicalLang;
173 			break;
174 		}
175 	}
176 	if (m_langID == "zh")
177 	{
178 		if (sublang == SUBLANG_CHINESE_SIMPLIFIED || sublang == SUBLANG_CHINESE_SINGAPORE)
179 			m_subLangID = "CHS";
180 		else
181 			m_subLangID = "CHT";	// default
182 	}
183 	setTranslationClass();
184 }
185 
186 #endif	// _win32
187 
getLanguageID() const188 string ASLocalizer::getLanguageID() const
189 // Returns the language ID in m_langID.
190 {
191 	return m_langID;
192 }
193 
getTranslationClass() const194 const Translation* ASLocalizer::getTranslationClass() const
195 // Returns the name of the translation class in m_translation.  Used for testing.
196 {
197 	assert(m_translation);
198 	return m_translation;
199 }
200 
setLanguageFromName(const char * langID)201 void ASLocalizer::setLanguageFromName(const char* langID)
202 // Linux set the language to use from the langID.
203 //
204 // the language string has the following form
205 //
206 //      lang[_LANG][.encoding][@modifier]
207 //
208 // (see environ(5) in the Open Unix specification)
209 //
210 // where lang is the primary language, LANG is a sublang/territory,
211 // encoding is the charset to use and modifier "allows the user to select
212 // a specific instance of localization data within a single category"
213 //
214 // for example, the following strings are valid:
215 //      fr
216 //      fr_FR
217 //      de_DE.iso88591
218 //      de_DE@euro
219 //      de_DE.iso88591@euro
220 {
221 	// the constants describing the format of lang_LANG locale string
222 	m_lcid = 0;
223 	string langStr = langID;
224 	m_langID = langStr.substr(0, 2);
225 
226 	// need the sublang for chinese
227 	if (m_langID == "zh" && langStr[2] == '_')
228 	{
229 		string subLang = langStr.substr(3, 2);
230 		if (subLang == "CN" || subLang == "SG")
231 			m_subLangID = "CHS";
232 		else
233 			m_subLangID = "CHT";	// default
234 	}
235 	setTranslationClass();
236 }
237 
settext(const char * textIn) const238 const char* ASLocalizer::settext(const char* textIn) const
239 // Call the settext class and return the value.
240 {
241 	assert(m_translation);
242 	const string stringIn = textIn;
243 	return m_translation->translate(stringIn).c_str();
244 }
245 
setTranslationClass()246 void ASLocalizer::setTranslationClass()
247 // Return the required translation class.
248 // Sets the class variable m_translation from the value of m_langID.
249 // Get the language ID at http://msdn.microsoft.com/en-us/library/ee797784%28v=cs.20%29.aspx
250 {
251 	assert(m_langID.length());
252 	// delete previously set (--ascii option)
253 	if (m_translation != nullptr)
254 	{
255 		delete m_translation;
256 		m_translation = nullptr;
257 	}
258 	if (m_langID == "bg")
259 		m_translation = new Bulgarian;
260 	else if (m_langID == "zh" && m_subLangID == "CHS")
261 		m_translation = new ChineseSimplified;
262 	else if (m_langID == "zh" && m_subLangID == "CHT")
263 		m_translation = new ChineseTraditional;
264 	else if (m_langID == "nl")
265 		m_translation = new Dutch;
266 	else if (m_langID == "en")
267 		m_translation = new English;
268 	else if (m_langID == "et")
269 		m_translation = new Estonian;
270 	else if (m_langID == "fi")
271 		m_translation = new Finnish;
272 	else if (m_langID == "fr")
273 		m_translation = new French;
274 	else if (m_langID == "de")
275 		m_translation = new German;
276 	else if (m_langID == "el")
277 		m_translation = new Greek;
278 	else if (m_langID == "hi")
279 		m_translation = new Hindi;
280 	else if (m_langID == "hu")
281 		m_translation = new Hungarian;
282 	else if (m_langID == "it")
283 		m_translation = new Italian;
284 	else if (m_langID == "ja")
285 		m_translation = new Japanese;
286 	else if (m_langID == "ko")
287 		m_translation = new Korean;
288 	else if (m_langID == "nn")
289 		m_translation = new Norwegian;
290 	else if (m_langID == "pl")
291 		m_translation = new Polish;
292 	else if (m_langID == "pt")
293 		m_translation = new Portuguese;
294 	else if (m_langID == "ro")
295 		m_translation = new Romanian;
296 	else if (m_langID == "ru")
297 		m_translation = new Russian;
298 	else if (m_langID == "es")
299 		m_translation = new Spanish;
300 	else if (m_langID == "sv")
301 		m_translation = new Swedish;
302 	else if (m_langID == "uk")
303 		m_translation = new Ukrainian;
304 	else	// default
305 		m_translation = new English;
306 }
307 
308 //----------------------------------------------------------------------------
309 // Translation base class methods.
310 //----------------------------------------------------------------------------
311 
addPair(const string & english,const wstring & translated)312 void Translation::addPair(const string& english, const wstring& translated)
313 // Add a string pair to the translation vector.
314 {
315 	pair<string, wstring> entry(english, translated);
316 	m_translation.emplace_back(entry);
317 }
318 
convertToMultiByte(const wstring & wideStr) const319 string Translation::convertToMultiByte(const wstring& wideStr) const
320 // Convert wchar_t to a multibyte string using the currently assigned locale.
321 // Return an empty string if an error occurs.
322 {
323 	static bool msgDisplayed = false;
324 	// get length of the output excluding the nullptr and validate the parameters
325 	size_t mbLen = wcstombs(nullptr, wideStr.c_str(), 0);
326 	if (mbLen == string::npos)
327 	{
328 		if (!msgDisplayed)
329 		{
330 			fprintf(stderr, "\n%s\n\n", "Cannot convert to multi-byte string, reverting to English");
331 			msgDisplayed = true;
332 		}
333 		return "";
334 	}
335 	// convert the characters
336 	char* mbStr = new (nothrow) char[mbLen + 1];
337 	if (mbStr == nullptr)
338 	{
339 		if (!msgDisplayed)
340 		{
341 			fprintf(stderr, "\n%s\n\n", "Bad memory alloc for multi-byte string, reverting to English");
342 			msgDisplayed = true;
343 		}
344 		return "";
345 	}
346 	wcstombs(mbStr, wideStr.c_str(), mbLen + 1);
347 	// return the string
348 	string mbTranslation = mbStr;
349 	delete[] mbStr;
350 	return mbTranslation;
351 }
352 
getTranslationVectorSize() const353 size_t Translation::getTranslationVectorSize() const
354 // Return the translation vector size.  Used for testing.
355 {
356 	return m_translation.size();
357 }
358 
getWideTranslation(const string & stringIn,wstring & wideOut) const359 bool Translation::getWideTranslation(const string& stringIn, wstring& wideOut) const
360 // Get the wide translation string. Used for testing.
361 {
362 	for (size_t i = 0; i < m_translation.size(); i++)
363 	{
364 		if (m_translation[i].first == stringIn)
365 		{
366 			wideOut = m_translation[i].second;
367 			return true;
368 		}
369 	}
370 	// not found
371 	wideOut = L"";
372 	return false;
373 }
374 
translate(const string & stringIn) const375 string& Translation::translate(const string& stringIn) const
376 // Translate a string.
377 // Return a mutable string so the method can have a "const" designation.
378 // This allows "settext" to be called from a "const" method.
379 {
380 	m_mbTranslation.clear();
381 	for (size_t i = 0; i < m_translation.size(); i++)
382 	{
383 		if (m_translation[i].first == stringIn)
384 		{
385 			m_mbTranslation = convertToMultiByte(m_translation[i].second);
386 			break;
387 		}
388 	}
389 	// not found, return english
390 	if (m_mbTranslation.empty())
391 		m_mbTranslation = stringIn;
392 	return m_mbTranslation;
393 }
394 
395 //----------------------------------------------------------------------------
396 // Translation class methods.
397 // These classes have only a constructor which builds the language vector.
398 //----------------------------------------------------------------------------
399 
Bulgarian()400 Bulgarian::Bulgarian()	// български
401 // build the translation vector in the Translation base class
402 {
403 	addPair("Formatted  %s\n", L"Форматиран  %s\n");		// should align with unchanged
404 	addPair("Unchanged  %s\n", L"Непроменен  %s\n");		// should align with formatted
405 	addPair("Directory  %s\n", L"директория  %s\n");
406 	addPair("Exclude  %s\n", L"Изключвам  %s\n");
407 	addPair("Exclude (unmatched)  %s\n", L"Изключване (несравнимо)  %s\n");
408 	addPair(" %s formatted   %s unchanged   ", L" %s форматиран   %s hепроменен   ");
409 	addPair(" seconds   ", L" секунди   ");
410 	addPair("%d min %d sec   ", L"%d мин %d сек   ");
411 	addPair("%s lines\n", L"%s линии\n");
412 	addPair("Using default options file %s\n", L"Използване на файла възможности по подразбиране %s\n");
413 	addPair("Opening HTML documentation %s\n", L"Откриване HTML документация %s\n");
414 	addPair("Invalid option file options:", L"Невалидни опции опция файлове:");
415 	addPair("Invalid command line options:", L"Невалидни опции за командния ред:");
416 	addPair("For help on options type 'astyle -h'", L"За помощ относно възможностите тип 'astyle -h'");
417 	addPair("Cannot open options file", L"Не може да се отвори файл опции");
418 	addPair("Cannot open directory", L"Не може да се отвори директория");
419 	addPair("Cannot open HTML file %s\n", L"Не може да се отвори HTML файл %s\n");
420 	addPair("Command execute failure", L"Command изпълни недостатъчност");
421 	addPair("Command is not installed", L"Command не е инсталиран");
422 	addPair("Missing filename in %s\n", L"Липсва името на файла в %s\n");
423 	addPair("Recursive option with no wildcard", L"Рекурсивно опция, без маска");
424 	addPair("Did you intend quote the filename", L"Знаете ли намерение да цитирам името на файла");
425 	addPair("No file to process %s\n", L"Не файл за обработка %s\n");
426 	addPair("Did you intend to use --recursive", L"Знаете ли възнамерявате да използвате --recursive");
427 	addPair("Cannot process UTF-32 encoding", L"Не може да са UTF-32 кодиране");
428 	addPair("\nArtistic Style has terminated", L"\nArtistic Style е прекратено");
429 }
430 
ChineseSimplified()431 ChineseSimplified::ChineseSimplified()	// 中文(简体)
432 // build the translation vector in the Translation base class
433 {
434 	addPair("Formatted  %s\n", L"格式化  %s\n");		// should align with unchanged
435 	addPair("Unchanged  %s\n", L"未改变  %s\n");		// should align with formatted
436 	addPair("Directory  %s\n", L"目录  %s\n");
437 	addPair("Exclude  %s\n", L"排除  %s\n");
438 	addPair("Exclude (unmatched)  %s\n", L"排除(无匹配项)  %s\n");
439 	addPair(" %s formatted   %s unchanged   ", L" %s 格式化   %s 未改变   ");
440 	addPair(" seconds   ", L" 秒   ");
441 	addPair("%d min %d sec   ", L"%d 分 %d 秒   ");
442 	addPair("%s lines\n", L"%s 行\n");
443 	addPair("Using default options file %s\n", L"使用默认配置文件 %s\n");
444 	addPair("Opening HTML documentation %s\n", L"打开HTML文档 %s\n");
445 	addPair("Invalid option file options:", L"无效的配置文件选项:");
446 	addPair("Invalid command line options:", L"无效的命令行选项:");
447 	addPair("For help on options type 'astyle -h'", L"输入 'astyle -h' 以获得有关命令行的帮助");
448 	addPair("Cannot open options file", L"无法打开配置文件");
449 	addPair("Cannot open directory", L"无法打开目录");
450 	addPair("Cannot open HTML file %s\n", L"无法打开HTML文件 %s\n");
451 	addPair("Command execute failure", L"执行命令失败");
452 	addPair("Command is not installed", L"未安装命令");
453 	addPair("Missing filename in %s\n", L"在%s缺少文件名\n");
454 	addPair("Recursive option with no wildcard", L"递归选项没有通配符");
455 	addPair("Did you intend quote the filename", L"你打算引用文件名");
456 	addPair("No file to process %s\n", L"没有文件可处理 %s\n");
457 	addPair("Did you intend to use --recursive", L"你打算使用 --recursive");
458 	addPair("Cannot process UTF-32 encoding", L"不能处理UTF-32编码");
459 	addPair("\nArtistic Style has terminated", L"\nArtistic Style 已经终止运行");
460 }
461 
ChineseTraditional()462 ChineseTraditional::ChineseTraditional()	// 中文(繁體)
463 // build the translation vector in the Translation base class
464 {
465 	addPair("Formatted  %s\n", L"格式化  %s\n");		// should align with unchanged
466 	addPair("Unchanged  %s\n", L"未改變  %s\n");		// should align with formatted
467 	addPair("Directory  %s\n", L"目錄  %s\n");
468 	addPair("Exclude  %s\n", L"排除  %s\n");
469 	addPair("Exclude (unmatched)  %s\n", L"排除(無匹配項)  %s\n");
470 	addPair(" %s formatted   %s unchanged   ", L" %s 格式化   %s 未改變   ");
471 	addPair(" seconds   ", L" 秒   ");
472 	addPair("%d min %d sec   ", L"%d 分 %d 秒   ");
473 	addPair("%s lines\n", L"%s 行\n");
474 	addPair("Using default options file %s\n", L"使用默認配置文件 %s\n");
475 	addPair("Opening HTML documentation %s\n", L"打開HTML文檔 %s\n");
476 	addPair("Invalid option file options:", L"無效的配置文件選項:");
477 	addPair("Invalid command line options:", L"無效的命令行選項:");
478 	addPair("For help on options type 'astyle -h'", L"輸入'astyle -h'以獲得有關命令行的幫助:");
479 	addPair("Cannot open options file", L"無法打開配置文件");
480 	addPair("Cannot open directory", L"無法打開目錄");
481 	addPair("Cannot open HTML file %s\n", L"無法打開HTML文件 %s\n");
482 	addPair("Command execute failure", L"執行命令失敗");
483 	addPair("Command is not installed", L"未安裝命令");
484 	addPair("Missing filename in %s\n", L"在%s缺少文件名\n");
485 	addPair("Recursive option with no wildcard", L"遞歸選項沒有通配符");
486 	addPair("Did you intend quote the filename", L"你打算引用文件名");
487 	addPair("No file to process %s\n", L"沒有文件可處理 %s\n");
488 	addPair("Did you intend to use --recursive", L"你打算使用 --recursive");
489 	addPair("Cannot process UTF-32 encoding", L"不能處理UTF-32編碼");
490 	addPair("\nArtistic Style has terminated", L"\nArtistic Style 已經終止運行");
491 }
492 
Dutch()493 Dutch::Dutch()	// Nederlandse
494 // build the translation vector in the Translation base class
495 {
496 	addPair("Formatted  %s\n", L"Geformatteerd  %s\n");	// should align with unchanged
497 	addPair("Unchanged  %s\n", L"Onveranderd    %s\n");	// should align with formatted
498 	addPair("Directory  %s\n", L"Directory  %s\n");
499 	addPair("Exclude  %s\n", L"Uitsluiten  %s\n");
500 	addPair("Exclude (unmatched)  %s\n", L"Uitgesloten (ongeëvenaarde)  %s\n");
501 	addPair(" %s formatted   %s unchanged   ", L" %s geformatteerd   %s onveranderd   ");
502 	addPair(" seconds   ", L" seconden   ");
503 	addPair("%d min %d sec   ", L"%d min %d sec   ");
504 	addPair("%s lines\n", L"%s lijnen\n");
505 	addPair("Using default options file %s\n", L"Met behulp van standaard opties bestand %s\n");
506 	addPair("Opening HTML documentation %s\n", L"Het openen van HTML-documentatie %s\n");
507 	addPair("Invalid option file options:", L"Ongeldige optie file opties:");
508 	addPair("Invalid command line options:", L"Ongeldige command line opties:");
509 	addPair("For help on options type 'astyle -h'", L"Voor hulp bij 'astyle-h' opties het type");
510 	addPair("Cannot open options file", L"Kan niet worden geopend options bestand");
511 	addPair("Cannot open directory", L"Kan niet open directory");
512 	addPair("Cannot open HTML file %s\n", L"Kan HTML-bestand niet openen %s\n");
513 	addPair("Command execute failure", L"Voeren commando falen");
514 	addPair("Command is not installed", L"Command is niet geïnstalleerd");
515 	addPair("Missing filename in %s\n", L"Ontbrekende bestandsnaam in %s\n");
516 	addPair("Recursive option with no wildcard", L"Recursieve optie met geen wildcard");
517 	addPair("Did you intend quote the filename", L"Heeft u van plan citaat van de bestandsnaam");
518 	addPair("No file to process %s\n", L"Geen bestand te verwerken %s\n");
519 	addPair("Did you intend to use --recursive", L"Hebt u van plan bent te gebruiken --recursive");
520 	addPair("Cannot process UTF-32 encoding", L"Kan niet verwerken UTF-32 codering");
521 	addPair("\nArtistic Style has terminated", L"\nArtistic Style heeft beëindigd");
522 }
523 
English()524 English::English()
525 // this class is NOT translated
526 {}
527 
Estonian()528 Estonian::Estonian()	// Eesti
529 // build the translation vector in the Translation base class
530 {
531 	addPair("Formatted  %s\n", L"Formaadis  %s\n");		// should align with unchanged
532 	addPair("Unchanged  %s\n", L"Muutumatu  %s\n");		// should align with formatted
533 	addPair("Directory  %s\n", L"Kataloog  %s\n");
534 	addPair("Exclude  %s\n", L"Välista  %s\n");
535 	addPair("Exclude (unmatched)  %s\n", L"Välista (tasakaalustamata)  %s\n");
536 	addPair(" %s formatted   %s unchanged   ", L" %s formaadis   %s muutumatu   ");
537 	addPair(" seconds   ", L" sekundit   ");
538 	addPair("%d min %d sec   ", L"%d min %d sek   ");
539 	addPair("%s lines\n", L"%s read\n");
540 	addPair("Using default options file %s\n", L"Kasutades selliseid vaikimisi valikuid faili %s\n");
541 	addPair("Opening HTML documentation %s\n", L"Avamine HTML dokumentatsioon %s\n");
542 	addPair("Invalid option file options:", L"Vale valik faili võimalusi:");
543 	addPair("Invalid command line options:", L"Vale käsureavõtmetega:");
544 	addPair("For help on options type 'astyle -h'", L"Abiks võimaluste tüüp 'astyle -h'");
545 	addPair("Cannot open options file", L"Ei saa avada võimalusi faili");
546 	addPair("Cannot open directory", L"Ei saa avada kataloogi");
547 	addPair("Cannot open HTML file %s\n", L"Ei saa avada HTML-faili %s\n");
548 	addPair("Command execute failure", L"Käsk täita rike");
549 	addPair("Command is not installed", L"Käsk ei ole paigaldatud");
550 	addPair("Missing filename in %s\n", L"Kadunud failinimi %s\n");
551 	addPair("Recursive option with no wildcard", L"Rekursiivne võimalus ilma metamärgi");
552 	addPair("Did you intend quote the filename", L"Kas te kavatsete tsiteerida failinimi");
553 	addPair("No file to process %s\n", L"No faili töötlema %s\n");
554 	addPair("Did you intend to use --recursive", L"Kas te kavatsete kasutada --recursive");
555 	addPair("Cannot process UTF-32 encoding", L"Ei saa töödelda UTF-32 kodeeringus");
556 	addPair("\nArtistic Style has terminated", L"\nArtistic Style on lõpetatud");
557 }
558 
Finnish()559 Finnish::Finnish()	// Suomeksi
560 // build the translation vector in the Translation base class
561 {
562 	addPair("Formatted  %s\n", L"Muotoiltu  %s\n");	// should align with unchanged
563 	addPair("Unchanged  %s\n", L"Ennallaan  %s\n");	// should align with formatted
564 	addPair("Directory  %s\n", L"Directory  %s\n");
565 	addPair("Exclude  %s\n", L"Sulkea  %s\n");
566 	addPair("Exclude (unmatched)  %s\n", L"Sulkea (verraton)  %s\n");
567 	addPair(" %s formatted   %s unchanged   ", L" %s muotoiltu   %s ennallaan   ");
568 	addPair(" seconds   ", L" sekuntia   ");
569 	addPair("%d min %d sec   ", L"%d min %d sek   ");
570 	addPair("%s lines\n", L"%s linjat\n");
571 	addPair("Using default options file %s\n", L"Käyttämällä oletusasetuksia tiedosto %s\n");
572 	addPair("Opening HTML documentation %s\n", L"Avaaminen HTML asiakirjat %s\n");
573 	addPair("Invalid option file options:", L"Virheellinen vaihtoehto tiedosto vaihtoehtoja:");
574 	addPair("Invalid command line options:", L"Virheellinen komentorivin:");
575 	addPair("For help on options type 'astyle -h'", L"Apua vaihtoehdoista tyyppi 'astyle -h'");
576 	addPair("Cannot open options file", L"Ei voi avata vaihtoehtoja tiedostoa");
577 	addPair("Cannot open directory", L"Ei Open Directory");
578 	addPair("Cannot open HTML file %s\n", L"Ei voi avata HTML-tiedoston %s\n");
579 	addPair("Command execute failure", L"Suorita komento vika");
580 	addPair("Command is not installed", L"Komento ei ole asennettu");
581 	addPair("Missing filename in %s\n", L"Puuttuvat tiedostonimi %s\n");
582 	addPair("Recursive option with no wildcard", L"Rekursiivinen vaihtoehto ilman wildcard");
583 	addPair("Did you intend quote the filename", L"Oletko aio lainata tiedostonimi");
584 	addPair("No file to process %s\n", L"Ei tiedostoa käsitellä %s\n");
585 	addPair("Did you intend to use --recursive", L"Oliko aiot käyttää --recursive");
586 	addPair("Cannot process UTF-32 encoding", L"Ei voi käsitellä UTF-32 koodausta");
587 	addPair("\nArtistic Style has terminated", L"\nArtistic Style on päättynyt");
588 }
589 
French()590 French::French()	// Française
591 // build the translation vector in the Translation base class
592 {
593 	addPair("Formatted  %s\n", L"Formaté    %s\n");	// should align with unchanged
594 	addPair("Unchanged  %s\n", L"Inchangée  %s\n");	// should align with formatted
595 	addPair("Directory  %s\n", L"Répertoire  %s\n");
596 	addPair("Exclude  %s\n", L"Exclure  %s\n");
597 	addPair("Exclude (unmatched)  %s\n", L"Exclure (non appariés)  %s\n");
598 	addPair(" %s formatted   %s unchanged   ", L" %s formaté   %s inchangée   ");
599 	addPair(" seconds   ", L" seconde   ");
600 	addPair("%d min %d sec   ", L"%d min %d sec   ");
601 	addPair("%s lines\n", L"%s lignes\n");
602 	addPair("Using default options file %s\n", L"Options par défaut utilisation du fichier %s\n");
603 	addPair("Opening HTML documentation %s\n", L"Ouverture documentation HTML %s\n");
604 	addPair("Invalid option file options:", L"Options Blancs option du fichier:");
605 	addPair("Invalid command line options:", L"Blancs options ligne de commande:");
606 	addPair("For help on options type 'astyle -h'", L"Pour de l'aide sur les options tapez 'astyle -h'");
607 	addPair("Cannot open options file", L"Impossible d'ouvrir le fichier d'options");
608 	addPair("Cannot open directory", L"Impossible d'ouvrir le répertoire");
609 	addPair("Cannot open HTML file %s\n", L"Impossible d'ouvrir le fichier HTML %s\n");
610 	addPair("Command execute failure", L"Exécuter échec de la commande");
611 	addPair("Command is not installed", L"Commande n'est pas installé");
612 	addPair("Missing filename in %s\n", L"Nom de fichier manquant dans %s\n");
613 	addPair("Recursive option with no wildcard", L"Option récursive sans joker");
614 	addPair("Did you intend quote the filename", L"Avez-vous l'intention de citer le nom de fichier");
615 	addPair("No file to process %s\n", L"Aucun fichier à traiter %s\n");
616 	addPair("Did you intend to use --recursive", L"Avez-vous l'intention d'utiliser --recursive");
617 	addPair("Cannot process UTF-32 encoding", L"Impossible de traiter codage UTF-32");
618 	addPair("\nArtistic Style has terminated", L"\nArtistic Style a mis fin");
619 }
620 
German()621 German::German()	// Deutsch
622 // build the translation vector in the Translation base class
623 {
624 	addPair("Formatted  %s\n", L"Formatiert   %s\n");	// should align with unchanged
625 	addPair("Unchanged  %s\n", L"Unverändert  %s\n");	// should align with formatted
626 	addPair("Directory  %s\n", L"Verzeichnis  %s\n");
627 	addPair("Exclude  %s\n", L"Ausschließen  %s\n");
628 	addPair("Exclude (unmatched)  %s\n", L"Ausschließen (unerreichte)  %s\n");
629 	addPair(" %s formatted   %s unchanged   ", L" %s formatiert   %s unverändert   ");
630 	addPair(" seconds   ", L" sekunden   ");
631 	addPair("%d min %d sec   ", L"%d min %d sek   ");
632 	addPair("%s lines\n", L"%s linien\n");
633 	addPair("Using default options file %s\n", L"Mit Standard-Optionen Dat %s\n");
634 	addPair("Opening HTML documentation %s\n", L"Öffnen HTML-Dokumentation %s\n");
635 	addPair("Invalid option file options:", L"Ungültige Option Datei-Optionen:");
636 	addPair("Invalid command line options:", L"Ungültige Kommandozeilen-Optionen:");
637 	addPair("For help on options type 'astyle -h'", L"Für Hilfe zu den Optionen geben Sie 'astyle -h'");
638 	addPair("Cannot open options file", L"Kann nicht geöffnet werden Optionsdatei");
639 	addPair("Cannot open directory", L"Kann nicht geöffnet werden Verzeichnis");
640 	addPair("Cannot open HTML file %s\n", L"Kann nicht öffnen HTML-Datei %s\n");
641 	addPair("Command execute failure", L"Execute Befehl Scheitern");
642 	addPair("Command is not installed", L"Befehl ist nicht installiert");
643 	addPair("Missing filename in %s\n", L"Missing in %s Dateiname\n");
644 	addPair("Recursive option with no wildcard", L"Rekursive Option ohne Wildcard");
645 	addPair("Did you intend quote the filename", L"Haben Sie die Absicht Inhalte der Dateiname");
646 	addPair("No file to process %s\n", L"Keine Datei zu verarbeiten %s\n");
647 	addPair("Did you intend to use --recursive", L"Haben Sie verwenden möchten --recursive");
648 	addPair("Cannot process UTF-32 encoding", L"Nicht verarbeiten kann UTF-32 Codierung");
649 	addPair("\nArtistic Style has terminated", L"\nArtistic Style ist beendet");
650 }
651 
Greek()652 Greek::Greek()	// ελληνικά
653 // build the translation vector in the Translation base class
654 {
655 	addPair("Formatted  %s\n", L"Διαμορφωμένη  %s\n");	// should align with unchanged
656 	addPair("Unchanged  %s\n", L"Αμετάβλητος   %s\n");	// should align with formatted
657 	addPair("Directory  %s\n", L"Κατάλογος  %s\n");
658 	addPair("Exclude  %s\n", L"Αποκλείω  %s\n");
659 	addPair("Exclude (unmatched)  %s\n", L"Ausschließen (unerreichte)  %s\n");
660 	addPair(" %s formatted   %s unchanged   ", L" %s σχηματοποιημένη   %s αμετάβλητες   ");
661 	addPair(" seconds   ", L" δευτερόλεπτα   ");
662 	addPair("%d min %d sec   ", L"%d λεπ %d δευ   ");
663 	addPair("%s lines\n", L"%s γραμμές\n");
664 	addPair("Using default options file %s\n", L"Χρησιμοποιώντας το αρχείο προεπιλεγμένες επιλογές %s\n");
665 	addPair("Opening HTML documentation %s\n", L"Εγκαίνια έγγραφα HTML %s\n");
666 	addPair("Invalid option file options:", L"Μη έγκυρες επιλογές αρχείου επιλογή:");
667 	addPair("Invalid command line options:", L"Μη έγκυρη επιλογές γραμμής εντολών:");
668 	addPair("For help on options type 'astyle -h'", L"Για βοήθεια σχετικά με το είδος επιλογές 'astyle -h'");
669 	addPair("Cannot open options file", L"Δεν μπορείτε να ανοίξετε το αρχείο επιλογών");
670 	addPair("Cannot open directory", L"Δεν μπορείτε να ανοίξετε τον κατάλογο");
671 	addPair("Cannot open HTML file %s\n", L"Δεν μπορείτε να ανοίξετε το αρχείο HTML %s\n");
672 	addPair("Command execute failure", L"Εντολή να εκτελέσει την αποτυχία");
673 	addPair("Command is not installed", L"Η εντολή δεν έχει εγκατασταθεί");
674 	addPair("Missing filename in %s\n", L"Λείπει το όνομα αρχείου σε %s\n");
675 	addPair("Recursive option with no wildcard", L"Αναδρομικές επιλογή χωρίς μπαλαντέρ");
676 	addPair("Did you intend quote the filename", L"Μήπως σκοπεύετε να αναφέρετε το όνομα του αρχείου");
677 	addPair("No file to process %s\n", L"Δεν υπάρχει αρχείο για την επεξεργασία %s\n");
678 	addPair("Did you intend to use --recursive", L"Μήπως σκοπεύετε να χρησιμοποιήσετε --recursive");
679 	addPair("Cannot process UTF-32 encoding", L"δεν μπορεί να επεξεργαστεί UTF-32 κωδικοποίηση");
680 	addPair("\nArtistic Style has terminated", L"\nArtistic Style έχει λήξει");
681 }
682 
Hindi()683 Hindi::Hindi()	// हिन्दी
684 // build the translation vector in the Translation base class
685 {
686 	// NOTE: Scintilla based editors (CodeBlocks) cannot always edit Hindi.
687 	//       Use Visual Studio instead.
688 	addPair("Formatted  %s\n", L"स्वरूपित किया  %s\n");	// should align with unchanged
689 	addPair("Unchanged  %s\n", L"अपरिवर्तित     %s\n");	// should align with formatted
690 	addPair("Directory  %s\n", L"निर्देशिका  %s\n");
691 	addPair("Exclude  %s\n", L"निकालना  %s\n");
692 	addPair("Exclude (unmatched)  %s\n", L"अपवर्जित (बेजोड़)  %s\n");
693 	addPair(" %s formatted   %s unchanged   ", L" %s स्वरूपित किया   %s अपरिवर्तित   ");
694 	addPair(" seconds   ", L" सेकंड   ");
695 	addPair("%d min %d sec   ", L"%d मिनट %d सेकंड   ");
696 	addPair("%s lines\n", L"%s लाइनों\n");
697 	addPair("Using default options file %s\n", L"डिफ़ॉल्ट विकल्प का उपयोग कर फ़ाइल %s\n");
698 	addPair("Opening HTML documentation %s\n", L"एचटीएमएल प्रलेखन खोलना %s\n");
699 	addPair("Invalid option file options:", L"अवैध विकल्प फ़ाइल विकल्प हैं:");
700 	addPair("Invalid command line options:", L"कमांड लाइन विकल्प अवैध:");
701 	addPair("For help on options type 'astyle -h'", L"विकल्पों पर मदद के लिए प्रकार 'astyle -h'");
702 	addPair("Cannot open options file", L"विकल्प फ़ाइल नहीं खोल सकता है");
703 	addPair("Cannot open directory", L"निर्देशिका नहीं खोल सकता");
704 	addPair("Cannot open HTML file %s\n", L"HTML फ़ाइल नहीं खोल सकता %s\n");
705 	addPair("Command execute failure", L"आदेश विफलता निष्पादित");
706 	addPair("Command is not installed", L"कमान स्थापित नहीं है");
707 	addPair("Missing filename in %s\n", L"लापता में फ़ाइलनाम %s\n");
708 	addPair("Recursive option with no wildcard", L"कोई वाइल्डकार्ड साथ पुनरावर्ती विकल्प");
709 	addPair("Did you intend quote the filename", L"क्या आप बोली फ़ाइलनाम का इरादा");
710 	addPair("No file to process %s\n", L"कोई फ़ाइल %s प्रक्रिया के लिए\n");
711 	addPair("Did you intend to use --recursive", L"क्या आप उपयोग करना चाहते हैं --recursive");
712 	addPair("Cannot process UTF-32 encoding", L"UTF-32 कूटबन्धन प्रक्रिया नहीं कर सकते");
713 	addPair("\nArtistic Style has terminated", L"\nArtistic Style समाप्त किया है");
714 }
715 
Hungarian()716 Hungarian::Hungarian()	// Magyar
717 // build the translation vector in the Translation base class
718 {
719 	addPair("Formatted  %s\n", L"Formázott    %s\n");	// should align with unchanged
720 	addPair("Unchanged  %s\n", L"Változatlan  %s\n");	// should align with formatted
721 	addPair("Directory  %s\n", L"Címjegyzék  %s\n");
722 	addPair("Exclude  %s\n", L"Kizár  %s\n");
723 	addPair("Exclude (unmatched)  %s\n", L"Escludere (senza pari)  %s\n");
724 	addPair(" %s formatted   %s unchanged   ", L" %s formázott   %s változatlan   ");
725 	addPair(" seconds   ", L" másodperc   ");
726 	addPair("%d min %d sec   ", L"%d jeg %d más   ");
727 	addPair("%s lines\n", L"%s vonalak\n");
728 	addPair("Using default options file %s\n", L"Az alapértelmezett beállítások fájl %s\n");
729 	addPair("Opening HTML documentation %s\n", L"Nyitó HTML dokumentáció %s\n");
730 	addPair("Invalid option file options:", L"Érvénytelen opció fájlbeállítást:");
731 	addPair("Invalid command line options:", L"Érvénytelen parancssori opciók:");
732 	addPair("For help on options type 'astyle -h'", L"Ha segítségre van lehetőség típus 'astyle-h'");
733 	addPair("Cannot open options file", L"Nem lehet megnyitni beállítási fájlban");
734 	addPair("Cannot open directory", L"Nem lehet megnyitni könyvtár");
735 	addPair("Cannot open HTML file %s\n", L"Nem lehet megnyitni a HTML fájlt %s\n");
736 	addPair("Command execute failure", L"Command végre hiba");
737 	addPair("Command is not installed", L"Parancs nincs telepítve");
738 	addPair("Missing filename in %s\n", L"Hiányzó fájlnév %s\n");
739 	addPair("Recursive option with no wildcard", L"Rekurzív kapcsolót nem wildcard");
740 	addPair("Did you intend quote the filename", L"Esetleg kívánja idézni a fájlnév");
741 	addPair("No file to process %s\n", L"Nincs fájl feldolgozása %s\n");
742 	addPair("Did you intend to use --recursive", L"Esetleg a használni kívánt --recursive");
743 	addPair("Cannot process UTF-32 encoding", L"Nem tudja feldolgozni UTF-32 kódolással");
744 	addPair("\nArtistic Style has terminated", L"\nArtistic Style megszűnt");
745 }
746 
Italian()747 Italian::Italian()	// Italiano
748 // build the translation vector in the Translation base class
749 {
750 	addPair("Formatted  %s\n", L"Formattata  %s\n");	// should align with unchanged
751 	addPair("Unchanged  %s\n", L"Immutato    %s\n");	// should align with formatted
752 	addPair("Directory  %s\n", L"Elenco  %s\n");
753 	addPair("Exclude  %s\n", L"Escludere  %s\n");
754 	addPair("Exclude (unmatched)  %s\n", L"Escludere (senza pari)  %s\n");
755 	addPair(" %s formatted   %s unchanged   ", L" %s ormattata   %s immutato   ");
756 	addPair(" seconds   ", L" secondo   ");
757 	addPair("%d min %d sec   ", L"%d min %d seg   ");
758 	addPair("%s lines\n", L"%s linee\n");
759 	addPair("Using default options file %s\n", L"Utilizzando file delle opzioni di default %s\n");
760 	addPair("Opening HTML documentation %s\n", L"Apertura di documenti HTML %s\n");
761 	addPair("Invalid option file options:", L"Opzione non valida file delle opzioni:");
762 	addPair("Invalid command line options:", L"Opzioni della riga di comando non valido:");
763 	addPair("For help on options type 'astyle -h'", L"Per informazioni sulle opzioni di tipo 'astyle-h'");
764 	addPair("Cannot open options file", L"Impossibile aprire il file opzioni");
765 	addPair("Cannot open directory", L"Impossibile aprire la directory");
766 	addPair("Cannot open HTML file %s\n", L"Impossibile aprire il file HTML %s\n");
767 	addPair("Command execute failure", L"Esegui fallimento comando");
768 	addPair("Command is not installed", L"Il comando non è installato");
769 	addPair("Missing filename in %s\n", L"Nome del file mancante in %s\n");
770 	addPair("Recursive option with no wildcard", L"Opzione ricorsiva senza jolly");
771 	addPair("Did you intend quote the filename", L"Avete intenzione citare il nome del file");
772 	addPair("No file to process %s\n", L"Nessun file al processo %s\n");
773 	addPair("Did you intend to use --recursive", L"Hai intenzione di utilizzare --recursive");
774 	addPair("Cannot process UTF-32 encoding", L"Non è possibile processo di codifica UTF-32");
775 	addPair("\nArtistic Style has terminated", L"\nArtistic Style ha terminato");
776 }
777 
Japanese()778 Japanese::Japanese()	// 日本語
779 // build the translation vector in the Translation base class
780 {
781 	addPair("Formatted  %s\n", L"フォーマット済みの  %s\n");		// should align with unchanged
782 	addPair("Unchanged  %s\n", L"変わりません        %s\n");		// should align with formatted
783 	addPair("Directory  %s\n", L"ディレクトリ  %s\n");
784 	addPair("Exclude  %s\n", L"除外する  %s\n");
785 	addPair("Exclude (unmatched)  %s\n", L"除外する(一致しません)  %s\n");
786 	addPair(" %s formatted   %s unchanged   ", L" %s フフォーマット済みの   %s 変わりません   ");
787 	addPair(" seconds   ", L" 秒   ");
788 	addPair("%d min %d sec   ", L"%d 分 %d 秒   ");
789 	addPair("%s lines\n", L"%s ライン\n");
790 	addPair("Using default options file %s\n", L"デフォルトのオプションファイルを使用して、 %s\n");
791 	addPair("Opening HTML documentation %s\n", L"オープニングHTMLドキュメント %s\n");
792 	addPair("Invalid option file options:", L"無効なオプションファイルのオプション:");
793 	addPair("Invalid command line options:", L"無効なコマンドラインオプション:");
794 	addPair("For help on options type 'astyle -h'", L"コオプションの種類のヘルプについて'astyle- h'を入力してください");
795 	addPair("Cannot open options file", L"オプションファイルを開くことができません");
796 	addPair("Cannot open directory", L"ディレクトリを開くことができません。");
797 	addPair("Cannot open HTML file %s\n", L"HTMLファイルを開くことができません %s\n");
798 	addPair("Command execute failure", L"コマンドが失敗を実行します");
799 	addPair("Command is not installed", L"コマンドがインストールされていません");
800 	addPair("Missing filename in %s\n", L"%s で、ファイル名がありません\n");
801 	addPair("Recursive option with no wildcard", L"無ワイルドカードを使用して再帰的なオプション");
802 	addPair("Did you intend quote the filename", L"あなたはファイル名を引用するつもりでした");
803 	addPair("No file to process %s\n", L"いいえファイルは処理しないように %s\n");
804 	addPair("Did you intend to use --recursive", L"あなたは--recursive使用するつもりでした");
805 	addPair("Cannot process UTF-32 encoding", L"UTF - 32エンコーディングを処理できません");
806 	addPair("\nArtistic Style has terminated", L"\nArtistic Style 終了しました");
807 }
808 
Korean()809 Korean::Korean()	// 한국의
810 // build the translation vector in the Translation base class
811 {
812 	addPair("Formatted  %s\n", L"수정됨    %s\n");		// should align with unchanged
813 	addPair("Unchanged  %s\n", L"변경없음  %s\n");		// should align with formatted
814 	addPair("Directory  %s\n", L"디렉토리  %s\n");
815 	addPair("Exclude  %s\n", L"제외됨  %s\n");
816 	addPair("Exclude (unmatched)  %s\n", L"제외 (NO 일치)  %s\n");
817 	addPair(" %s formatted   %s unchanged   ", L" %s 수정됨   %s 변경없음   ");
818 	addPair(" seconds   ", L" 초   ");
819 	addPair("%d min %d sec   ", L"%d 분 %d 초   ");
820 	addPair("%s lines\n", L"%s 라인\n");
821 	addPair("Using default options file %s\n", L"기본 구성 파일을 사용 %s\n");
822 	addPair("Opening HTML documentation %s\n", L"HTML 문서를 열기 %s\n");
823 	addPair("Invalid option file options:", L"잘못된 구성 파일 옵션 :");
824 	addPair("Invalid command line options:", L"잘못된 명령줄 옵션 :");
825 	addPair("For help on options type 'astyle -h'", L"도움말을 보려면 옵션 유형 'astyle - H'를 사용합니다");
826 	addPair("Cannot open options file", L"구성 파일을 열 수 없습니다");
827 	addPair("Cannot open directory", L"디렉토리를 열지 못했습니다");
828 	addPair("Cannot open HTML file %s\n", L"HTML 파일을 열 수 없습니다 %s\n");
829 	addPair("Command execute failure", L"명령 실패를 실행");
830 	addPair("Command is not installed", L"명령이 설치되어 있지 않습니다");
831 	addPair("Missing filename in %s\n", L"%s 에서 누락된 파일 이름\n");
832 	addPair("Recursive option with no wildcard", L"와일드 카드없이 재귀 옵션");
833 	addPair("Did you intend quote the filename", L"당신은 파일 이름을 인용하고자하나요");
834 	addPair("No file to process %s\n", L"처리할 파일이 없습니다 %s\n");
835 	addPair("Did you intend to use --recursive", L"--recursive 를 사용하고자 하십니까");
836 	addPair("Cannot process UTF-32 encoding", L"UTF-32 인코딩을 처리할 수 없습니다");
837 	addPair("\nArtistic Style has terminated", L"\nArtistic Style를 종료합니다");
838 }
839 
Norwegian()840 Norwegian::Norwegian()	// Norsk
841 // build the translation vector in the Translation base class
842 {
843 	addPair("Formatted  %s\n", L"Formatert  %s\n");		// should align with unchanged
844 	addPair("Unchanged  %s\n", L"Uendret    %s\n");		// should align with formatted
845 	addPair("Directory  %s\n", L"Katalog  %s\n");
846 	addPair("Exclude  %s\n", L"Ekskluder  %s\n");
847 	addPair("Exclude (unmatched)  %s\n", L"Ekskluder (uovertruffen)  %s\n");
848 	addPair(" %s formatted   %s unchanged   ", L" %s formatert   %s uendret   ");
849 	addPair(" seconds   ", L" sekunder   ");
850 	addPair("%d min %d sec   ", L"%d min %d sek?   ");
851 	addPair("%s lines\n", L"%s linjer\n");
852 	addPair("Using default options file %s\n", L"Ved hjelp av standardalternativer fil %s\n");
853 	addPair("Opening HTML documentation %s\n", L"Åpning HTML dokumentasjon %s\n");
854 	addPair("Invalid option file options:", L"Ugyldige alternativ filalternativer:");
855 	addPair("Invalid command line options:", L"Kommandolinjevalg Ugyldige:");
856 	addPair("For help on options type 'astyle -h'", L"For hjelp til alternativer type 'astyle -h'");
857 	addPair("Cannot open options file", L"Kan ikke åpne alternativer fil");
858 	addPair("Cannot open directory", L"Kan ikke åpne katalog");
859 	addPair("Cannot open HTML file %s\n", L"Kan ikke åpne HTML-fil %s\n");
860 	addPair("Command execute failure", L"Command utføre svikt");
861 	addPair("Command is not installed", L"Command er ikke installert");
862 	addPair("Missing filename in %s\n", L"Mangler filnavn i %s\n");
863 	addPair("Recursive option with no wildcard", L"Rekursiv alternativ uten wildcard");
864 	addPair("Did you intend quote the filename", L"Har du tenkt sitere filnavnet");
865 	addPair("No file to process %s\n", L"Ingen fil å behandle %s\n");
866 	addPair("Did you intend to use --recursive", L"Har du tenkt å bruke --recursive");
867 	addPair("Cannot process UTF-32 encoding", L"Kan ikke behandle UTF-32 koding");
868 	addPair("\nArtistic Style has terminated", L"\nArtistic Style har avsluttet");
869 }
870 
Polish()871 Polish::Polish()	// Polski
872 // build the translation vector in the Translation base class
873 {
874 	addPair("Formatted  %s\n", L"Sformatowany  %s\n");	// should align with unchanged
875 	addPair("Unchanged  %s\n", L"Niezmienione  %s\n");	// should align with formatted
876 	addPair("Directory  %s\n", L"Katalog  %s\n");
877 	addPair("Exclude  %s\n", L"Wykluczać  %s\n");
878 	addPair("Exclude (unmatched)  %s\n", L"Wyklucz (niezrównany)  %s\n");
879 	addPair(" %s formatted   %s unchanged   ", L" %s sformatowany   %s niezmienione   ");
880 	addPair(" seconds   ", L" sekund   ");
881 	addPair("%d min %d sec   ", L"%d min %d sek   ");
882 	addPair("%s lines\n", L"%s linii\n");
883 	addPair("Using default options file %s\n", L"Korzystanie z domyślnej opcji %s plik\n");
884 	addPair("Opening HTML documentation %s\n", L"Otwarcie dokumentacji HTML %s\n");
885 	addPair("Invalid option file options:", L"Nieprawidłowy opcji pliku opcji:");
886 	addPair("Invalid command line options:", L"Nieprawidłowe opcje wiersza polecenia:");
887 	addPair("For help on options type 'astyle -h'", L"Aby uzyskać pomoc od rodzaju opcji 'astyle -h'");
888 	addPair("Cannot open options file", L"Nie można otworzyć pliku opcji");
889 	addPair("Cannot open directory", L"Nie można otworzyć katalogu");
890 	addPair("Cannot open HTML file %s\n", L"Nie można otworzyć pliku HTML %s\n");
891 	addPair("Command execute failure", L"Wykonaj polecenia niepowodzenia");
892 	addPair("Command is not installed", L"Polecenie nie jest zainstalowany");
893 	addPair("Missing filename in %s\n", L"Brakuje pliku w %s\n");
894 	addPair("Recursive option with no wildcard", L"Rekurencyjne opcja bez symboli");
895 	addPair("Did you intend quote the filename", L"Czy zamierza Pan podać nazwę pliku");
896 	addPair("No file to process %s\n", L"Brak pliku do procesu %s\n");
897 	addPair("Did you intend to use --recursive", L"Czy masz zamiar używać --recursive");
898 	addPair("Cannot process UTF-32 encoding", L"Nie można procesu kodowania UTF-32");
899 	addPair("\nArtistic Style has terminated", L"\nArtistic Style został zakończony");
900 }
901 
Portuguese()902 Portuguese::Portuguese()	// Português
903 // build the translation vector in the Translation base class
904 {
905 	addPair("Formatted  %s\n", L"Formatado   %s\n");	// should align with unchanged
906 	addPair("Unchanged  %s\n", L"Inalterado  %s\n");	// should align with formatted
907 	addPair("Directory  %s\n", L"Diretório  %s\n");
908 	addPair("Exclude  %s\n", L"Excluir  %s\n");
909 	addPair("Exclude (unmatched)  %s\n", L"Excluir (incomparável)  %s\n");
910 	addPair(" %s formatted   %s unchanged   ", L" %s formatado   %s inalterado   ");
911 	addPair(" seconds   ", L" segundo   ");
912 	addPair("%d min %d sec   ", L"%d min %d seg   ");
913 	addPair("%s lines\n", L"%s linhas\n");
914 	addPair("Using default options file %s\n", L"Usando o arquivo de opções padrão %s\n");
915 	addPair("Opening HTML documentation %s\n", L"Abrindo a documentação HTML %s\n");
916 	addPair("Invalid option file options:", L"Opções de arquivo inválido opção:");
917 	addPair("Invalid command line options:", L"Opções de linha de comando inválida:");
918 	addPair("For help on options type 'astyle -h'", L"Para obter ajuda sobre as opções de tipo 'astyle -h'");
919 	addPair("Cannot open options file", L"Não é possível abrir arquivo de opções");
920 	addPair("Cannot open directory", L"Não é possível abrir diretório");
921 	addPair("Cannot open HTML file %s\n", L"Não é possível abrir arquivo HTML %s\n");
922 	addPair("Command execute failure", L"Executar falha de comando");
923 	addPair("Command is not installed", L"Comando não está instalado");
924 	addPair("Missing filename in %s\n", L"Filename faltando em %s\n");
925 	addPair("Recursive option with no wildcard", L"Opção recursiva sem curinga");
926 	addPair("Did you intend quote the filename", L"Será que você pretende citar o nome do arquivo");
927 	addPair("No file to process %s\n", L"Nenhum arquivo para processar %s\n");
928 	addPair("Did you intend to use --recursive", L"Será que você pretende usar --recursive");
929 	addPair("Cannot process UTF-32 encoding", L"Não pode processar a codificação UTF-32");
930 	addPair("\nArtistic Style has terminated", L"\nArtistic Style terminou");
931 }
932 
Romanian()933 Romanian::Romanian()	// Română
934 // build the translation vector in the Translation base class
935 {
936 	addPair("Formatted  %s\n", L"Formatat    %s\n");	// should align with unchanged
937 	addPair("Unchanged  %s\n", L"Neschimbat  %s\n");	// should align with formatted
938 	addPair("Directory  %s\n", L"Director  %s\n");
939 	addPair("Exclude  %s\n", L"Excludeți  %s\n");
940 	addPair("Exclude (unmatched)  %s\n", L"Excludeți (necompensată)  %s\n");
941 	addPair(" %s formatted   %s unchanged   ", L" %s formatat   %s neschimbat   ");
942 	addPair(" seconds   ", L" secunde   ");
943 	addPair("%d min %d sec   ", L"%d min %d sec   ");
944 	addPair("%s lines\n", L"%s linii\n");
945 	addPair("Using default options file %s\n", L"Fișier folosind opțiunile implicite %s\n");
946 	addPair("Opening HTML documentation %s\n", L"Documentație HTML deschidere %s\n");
947 	addPair("Invalid option file options:", L"Opțiuni de opțiune de fișier nevalide:");
948 	addPair("Invalid command line options:", L"Opțiuni de linie de comandă nevalide:");
949 	addPair("For help on options type 'astyle -h'", L"Pentru ajutor cu privire la tipul de opțiuni 'astyle -h'");
950 	addPair("Cannot open options file", L"Nu se poate deschide fișierul de opțiuni");
951 	addPair("Cannot open directory", L"Nu se poate deschide directorul");
952 	addPair("Cannot open HTML file %s\n", L"Nu se poate deschide fișierul HTML %s\n");
953 	addPair("Command execute failure", L"Comandă executa eșec");
954 	addPair("Command is not installed", L"Comanda nu este instalat");
955 	addPair("Missing filename in %s\n", L"Lipsă nume de fișier %s\n");
956 	addPair("Recursive option with no wildcard", L"Opțiunea recursiv cu nici un wildcard");
957 	addPair("Did you intend quote the filename", L"V-intentionati cita numele de fișier");
958 	addPair("No file to process %s\n", L"Nu există un fișier pentru a procesa %s\n");
959 	addPair("Did you intend to use --recursive", L"V-ați intenționați să utilizați --recursive");
960 	addPair("Cannot process UTF-32 encoding", L"Nu se poate procesa codificarea UTF-32");
961 	addPair("\nArtistic Style has terminated", L"\nArtistic Style a terminat");
962 }
963 
Russian()964 Russian::Russian()	// русский
965 // build the translation vector in the Translation base class
966 {
967 	addPair("Formatted  %s\n", L"Форматированный  %s\n");	// should align with unchanged
968 	addPair("Unchanged  %s\n", L"без изменений    %s\n");	// should align with formatted
969 	addPair("Directory  %s\n", L"каталог  %s\n");
970 	addPair("Exclude  %s\n", L"исключать  %s\n");
971 	addPair("Exclude (unmatched)  %s\n", L"Исключить (непревзойденный)  %s\n");
972 	addPair(" %s formatted   %s unchanged   ", L" %s Форматированный   %s без изменений   ");
973 	addPair(" seconds   ", L" секунды   ");
974 	addPair("%d min %d sec   ", L"%d мин %d сек   ");
975 	addPair("%s lines\n", L"%s линий\n");
976 	addPair("Using default options file %s\n", L"Использование опции по умолчанию файл %s\n");
977 	addPair("Opening HTML documentation %s\n", L"Открытие HTML документации %s\n");
978 	addPair("Invalid option file options:", L"Недопустимый файл опций опцию:");
979 	addPair("Invalid command line options:", L"Недопустимые параметры командной строки:");
980 	addPair("For help on options type 'astyle -h'", L"Для получения справки по 'astyle -h' опций типа");
981 	addPair("Cannot open options file", L"Не удается открыть файл параметров");
982 	addPair("Cannot open directory", L"Не могу открыть каталог");
983 	addPair("Cannot open HTML file %s\n", L"Не удается открыть файл HTML %s\n");
984 	addPair("Command execute failure", L"Выполнить команду недостаточности");
985 	addPair("Command is not installed", L"Не установлен Команда");
986 	addPair("Missing filename in %s\n", L"Отсутствует имя файла в %s\n");
987 	addPair("Recursive option with no wildcard", L"Рекурсивный вариант без каких-либо шаблона");
988 	addPair("Did you intend quote the filename", L"Вы намерены цитатой файла");
989 	addPair("No file to process %s\n", L"Нет файлов для обработки %s\n");
990 	addPair("Did you intend to use --recursive", L"Неужели вы собираетесь использовать --recursive");
991 	addPair("Cannot process UTF-32 encoding", L"Не удается обработать UTF-32 кодировке");
992 	addPair("\nArtistic Style has terminated", L"\nArtistic Style прекратил");
993 }
994 
Spanish()995 Spanish::Spanish()	// Español
996 // build the translation vector in the Translation base class
997 {
998 	addPair("Formatted  %s\n", L"Formato     %s\n");	// should align with unchanged
999 	addPair("Unchanged  %s\n", L"Inalterado  %s\n");	// should align with formatted
1000 	addPair("Directory  %s\n", L"Directorio  %s\n");
1001 	addPair("Exclude  %s\n", L"Excluir  %s\n");
1002 	addPair("Exclude (unmatched)  %s\n", L"Excluir (incomparable)  %s\n");
1003 	addPair(" %s formatted   %s unchanged   ", L" %s formato   %s inalterado   ");
1004 	addPair(" seconds   ", L" segundo   ");
1005 	addPair("%d min %d sec   ", L"%d min %d seg   ");
1006 	addPair("%s lines\n", L"%s líneas\n");
1007 	addPair("Using default options file %s\n", L"Uso de las opciones por defecto del archivo %s\n");
1008 	addPair("Opening HTML documentation %s\n", L"Apertura de documentación HTML %s\n");
1009 	addPair("Invalid option file options:", L"Opción no válida opciones de archivo:");
1010 	addPair("Invalid command line options:", L"No válido opciones de línea de comando:");
1011 	addPair("For help on options type 'astyle -h'", L"Para obtener ayuda sobre las opciones tipo 'astyle -h'");
1012 	addPair("Cannot open options file", L"No se puede abrir el archivo de opciones");
1013 	addPair("Cannot open directory", L"No se puede abrir el directorio");
1014 	addPair("Cannot open HTML file %s\n", L"No se puede abrir el archivo HTML %s\n");
1015 	addPair("Command execute failure", L"Ejecutar el fracaso de comandos");
1016 	addPair("Command is not installed", L"El comando no está instalado");
1017 	addPair("Missing filename in %s\n", L"Falta nombre del archivo en %s\n");
1018 	addPair("Recursive option with no wildcard", L"Recursiva opción sin comodín");
1019 	addPair("Did you intend quote the filename", L"Se tiene la intención de citar el nombre de archivo");
1020 	addPair("No file to process %s\n", L"No existe el fichero a procesar %s\n");
1021 	addPair("Did you intend to use --recursive", L"Se va a utilizar --recursive");
1022 	addPair("Cannot process UTF-32 encoding", L"No se puede procesar la codificación UTF-32");
1023 	addPair("\nArtistic Style has terminated", L"\nArtistic Style ha terminado");
1024 }
1025 
Swedish()1026 Swedish::Swedish()	// Svenska
1027 // build the translation vector in the Translation base class
1028 {
1029 	addPair("Formatted  %s\n", L"Formaterade  %s\n");	// should align with unchanged
1030 	addPair("Unchanged  %s\n", L"Oförändrade  %s\n");	// should align with formatted
1031 	addPair("Directory  %s\n", L"Katalog  %s\n");
1032 	addPair("Exclude  %s\n", L"Uteslut  %s\n");
1033 	addPair("Exclude (unmatched)  %s\n", L"Uteslut (oöverträffad)  %s\n");
1034 	addPair(" %s formatted   %s unchanged   ", L" %s formaterade   %s oförändrade   ");
1035 	addPair(" seconds   ", L" sekunder   ");
1036 	addPair("%d min %d sec   ", L"%d min %d sek   ");
1037 	addPair("%s lines\n", L"%s linjer\n");
1038 	addPair("Using default options file %s\n", L"Använda standardalternativ fil %s\n");
1039 	addPair("Opening HTML documentation %s\n", L"Öppna HTML-dokumentation %s\n");
1040 	addPair("Invalid option file options:", L"Ogiltigt alternativ fil alternativ:");
1041 	addPair("Invalid command line options:", L"Ogiltig kommandoraden alternativ:");
1042 	addPair("For help on options type 'astyle -h'", L"För hjälp om alternativ typ 'astyle -h'");
1043 	addPair("Cannot open options file", L"Kan inte öppna inställningsfilen");
1044 	addPair("Cannot open directory", L"Kan inte öppna katalog");
1045 	addPair("Cannot open HTML file %s\n", L"Kan inte öppna HTML-filen %s\n");
1046 	addPair("Command execute failure", L"Utför kommando misslyckande");
1047 	addPair("Command is not installed", L"Kommandot är inte installerat");
1048 	addPair("Missing filename in %s\n", L"Saknade filnamn i %s\n");
1049 	addPair("Recursive option with no wildcard", L"Rekursiva alternativ utan jokertecken");
1050 	addPair("Did you intend quote the filename", L"Visste du tänker citera filnamnet");
1051 	addPair("No file to process %s\n", L"Ingen fil att bearbeta %s\n");
1052 	addPair("Did you intend to use --recursive", L"Har du för avsikt att använda --recursive");
1053 	addPair("Cannot process UTF-32 encoding", L"Kan inte hantera UTF-32 kodning");
1054 	addPair("\nArtistic Style has terminated", L"\nArtistic Style har upphört");
1055 }
1056 
Ukrainian()1057 Ukrainian::Ukrainian()	// Український
1058 // build the translation vector in the Translation base class
1059 {
1060 	addPair("Formatted  %s\n", L"форматований  %s\n");	// should align with unchanged
1061 	addPair("Unchanged  %s\n", L"без змін      %s\n");	// should align with formatted
1062 	addPair("Directory  %s\n", L"Каталог  %s\n");
1063 	addPair("Exclude  %s\n", L"Виключити  %s\n");
1064 	addPair("Exclude (unmatched)  %s\n", L"Виключити (неперевершений)  %s\n");
1065 	addPair(" %s formatted   %s unchanged   ", L" %s відформатований   %s без змін   ");
1066 	addPair(" seconds   ", L" секунди   ");
1067 	addPair("%d min %d sec   ", L"%d хви %d cek   ");
1068 	addPair("%s lines\n", L"%s ліній\n");
1069 	addPair("Using default options file %s\n", L"Використання файлів опцій за замовчуванням %s\n");
1070 	addPair("Opening HTML documentation %s\n", L"Відкриття HTML документації %s\n");
1071 	addPair("Invalid option file options:", L"Неприпустимий файл опцій опцію:");
1072 	addPair("Invalid command line options:", L"Неприпустима параметри командного рядка:");
1073 	addPair("For help on options type 'astyle -h'", L"Для отримання довідки по 'astyle -h' опцій типу");
1074 	addPair("Cannot open options file", L"Не вдається відкрити файл параметрів");
1075 	addPair("Cannot open directory", L"Не можу відкрити каталог");
1076 	addPair("Cannot open HTML file %s\n", L"Не вдається відкрити файл HTML %s\n");
1077 	addPair("Command execute failure", L"Виконати команду недостатності");
1078 	addPair("Command is not installed", L"Не встановлений Команда");
1079 	addPair("Missing filename in %s\n", L"Відсутня назва файлу в %s\n");
1080 	addPair("Recursive option with no wildcard", L"Рекурсивний варіант без будь-яких шаблону");
1081 	addPair("Did you intend quote the filename", L"Ви маєте намір цитатою файлу");
1082 	addPair("No file to process %s\n", L"Немає файлів для обробки %s\n");
1083 	addPair("Did you intend to use --recursive", L"Невже ви збираєтеся використовувати --recursive");
1084 	addPair("Cannot process UTF-32 encoding", L"Не вдається обробити UTF-32 кодуванні");
1085 	addPair("\nArtistic Style has terminated", L"\nArtistic Style припинив");
1086 }
1087 
1088 
1089 #endif	// ASTYLE_LIB
1090 
1091 }   // end of namespace astyle
1092 
1093