I2 Localization - Readme.txt 67 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876
  1. ----------------------------------------------
  2. I2 Localization
  3. 2.8.20 f2
  4. http://www.inter-illusion.com
  5. inter.illusion@gmail.com
  6. ----------------------------------------------
  7. Thank you for buying I2 Localization!
  8. Documentation can be found here: http://www.inter-illusion.com/assets/I2LocalizationManual/I2LocalizationManual.html
  9. A few basic tutorials and more info: http://www.inter-illusion.com/tools/i2-localization
  10. If you have any questions, suggestions, comments or feature requests, please
  11. drop by the I2 forum: http://www.inter-illusion.com/forum/index
  12. ----------------------
  13. Installation
  14. ----------------------
  15. 1- Import the plugin package into a Unity project.
  16. 2- Enable the support for third party plugins installed on the project
  17. (Menu: Tools\I2 Localization\Enable Plugins)
  18. 3- Open any of the example scenes to see how to setup and localize Components
  19. (Assets/I2/Localization/Examples)
  20. 4- To create your own localizations, open the prefab I2\Localization\Resources\I2Languages
  21. 5- Create the languages you will support.
  22. 6- The I2Languages source is a global source accessible by all scenes
  23. The documentation provides further explanation on each of those steps and some tutorials.
  24. Also its presented how to convert an existing NGUI localization into the I2 Localization system.
  25. -----------------------
  26. PLAYMAKER
  27. -----------------------
  28. If you use PlayMaker, please, install:
  29. - http://www.inter-illusion.com/Downloads/I2Localization_PlayMaker.unitypackage
  30. - PlayMaker Unity UI Addon (from the Playmaker website - only needed for the example scenes that use Unity UI)
  31. That will install custom actions to access and modify the localization.
  32. More details can be found in the example scene
  33. Assets\I2\Localization PlayMaker\Playmaker Localization.unity
  34. -----------------------
  35. Ratings
  36. -----------------------
  37. If you find this plugin to be useful and want to recommend others to use it.
  38. Please leave a review or rate it on the Asset Store.
  39. That will help with the sales and allow me to invest more time improving the plugin!!
  40. -----------------------
  41. Extras
  42. -----------------------
  43. These are some of my plugins that may help you develop a better game:
  44. I2 Parallax - Uses the mobile gyroscope to add depth to your UI (http://bit.ly/I2_Parallax)
  45. I2 Text Animation - Take your texts to the next level (http://bit.ly/I2_TextAnimation)
  46. I2 MiniGames - A better way to do Rewards and Energy Systems (http://bit.ly/I2_MiniGames)
  47. AssetStore Deals - A bot that constantly checks the Store to find you the latest Sales (http://deals.inter-illusion.com)
  48. -----------------------
  49. Version History
  50. -----------------------
  51. 2.8.20
  52. NEW: Missing translations are now shown in the console log.
  53. FIX: Null Exception when running in 2021.3
  54. 2.8.19
  55. NEW: Baking terms now supports the use of Chinese/Japanese characters
  56. FIX: Calling Import_Google with force=true, was not using the force parameter and skipping importing the data
  57. FIX: Url to download the Playmaker actions was not right.
  58. 2.8.18
  59. NEW: Translations fallbacks now working with multiple language sources
  60. 2.8.17
  61. NEW: When generating ScriptLocalization.cs, if a term name is a C# keyword the variable now is set to start with @
  62. NEW: There is now LocalizationManager.CustomApplyLocalizationParams to process ALL translations before ApplyLocalizationParams runs
  63. FIX: Translations with RTL tags were failing (thanks @d xy for looking into this)
  64. 2.8.16
  65. FIX: TextMesh Pro was not correctly displaying multi-line arabic texts
  66. 2.8.15
  67. NEW: Performance improvement when switching levels by not calling Resources.UnloadUnusedAssets() unless the user requests it.
  68. For most common scenarios, there is no need to unloadUnusedAssets
  69. NEW: Lots of stability fixes by cleaning up all warnings detected by the Roslyn Analyzers
  70. NEW: Fixed several issues/obsolete calls when on the latest versions of Unity
  71. 2.8.14
  72. NEW: Added support for localizing Video Player
  73. NEW: Allow skipping Google Synchronization from script by creating a RegisterCallback_AllowSyncFromGoogle class
  74. (http://www.inter-illusion.com/forum/i2-localization/1679-turning-off-auto-update-via-script#4166)
  75. FIX: UI changes to remove dark colors in the background
  76. FIX: Disabling Localized Parameters now work as expected (i.e. Parameters still work, but they are not localized even if a term is found with that value)
  77. FIX: Target TextMesh now correctly changes font and materials
  78. 2.8.13
  79. NEW: Added UpdateFrequency EveryOtherDay to allow checking the spreadsheet every 48h
  80. NEW: Added a function to retrieve an asset by using the term name (e.g. font, sprite) LocalizationManager.GetTranslatedObjectByTermName<t>(TermName)
  81. FIX: Replaced all events using Action<..> by delegate function that clearly show what the parameters are for
  82. FIX: Inspector was not showing correctly when in the latest alpha/beta of Unity 2019.2+
  83. FIX: Bug where Languages coudn't be enabled at runtime (thanks to bschug for submitting a fix)
  84. FIX: To reduce memory usage, Term descriptions are now only used in the editor (not in the final build) If needed, use a disabled language to store it
  85. FIX: Inspector Width should now be detected more accurately
  86. 2.8.12
  87. NEW: Now is possible to dynamically create a LanguageSourceData without a LanguageSource and use it at runtime.
  88. NEW: LocalizationParamsManager now have a Manager Type (Local/Global) to define if it applies to ALL Localize or just the one in the same object.
  89. FIX: Term's list is not longer fully expanded all the time.
  90. FIX: Specialization bar in the Term's translations now shows the selected specialization as a tab-button
  91. FIX: Adding new specializations now copies the translation from the current specialization, so the user can create several in sequence.
  92. FIX: Terms can now have any letter, digit or any of the following symbols .-_$#@*()[]{}+:?!&'`,^=<>~
  93. FIX: Removed invalid character from the StringObfucator that were causing build issues in XBox
  94. FIX: RTL Fixer (Arabic, Persian, etc) was detecting tags like <xx>, only [xx]
  95. 2.8.11
  96. NEW: Term's name can now have any of the following symbols ".-_$#@*)(][}{+:?!&'"
  97. NEW: Now the plugin localizes MeshRenderer (Mesh + Material)
  98. NEW: New parameter in the Google Spreadsheet tab to control when to apply the downloaded data (OnSceneLoaded, Manual, AsSoonAsDownloaded)
  99. FIX: Inferring terms with '/' no longer generates a Category
  100. FIX: Updated NGUI target to be compatible with the latest version
  101. FIX: Localize inspector, the options in the dropdown for "ForceLocalize" and "Allow Localized Parameters" were in the wrong order
  102. FIX: Inspector for the Google Spreadsheet tab in the LanguageSource was cutting when the Inspector was too narrow
  103. FIX: Button "Open Source" in the Localize Inspector now works for both LanguageSources and LanguageSourceAssets
  104. FIX: Terms name can now have Non latin letters (e.g. Chinese, Korean, etc), but no symbols, extra spaces, etc
  105. 2.8.10
  106. NEW: LocalizationManager.GetCurrentDevice(true) will now force get the Device Language without using the startup language from the cache
  107. FIX: Updated Playmaker actions to new Prefab system
  108. FIX: Menu option: Tools/I2 Localization/Open I2Languages
  109. FIX: When inferring terms, any tag (e.g. <color>) or invalid characters (e.g. ^/\`) are removed to form the term name
  110. 2.8.9
  111. NEW: I2Languages.prefab is now an ScriptableObject instead of a prefab to avoid the locking issues of Unity 2018.3
  112. FIX: Compatibility with Unity 2018.3
  113. FIX: Plural rules for some Slavic languages were using the wrong settings.
  114. FIX: Improved performance when using assets from Resources and in general only calling Resource.UnloadAll when loading scenes
  115. 2.8.8
  116. NEW: Added a flag to disable Localized Parameters
  117. (http://inter-illusion.com/forum/i2-localization/1163-localization-params-auto-translating-design-flaw#3195)
  118. NEW: Merged all checkboxes in the Localize component into an "Options" popup to make the Localize's inspector use less space
  119. NEW: Find all terms in the Scene/Scripts now also detects those in your code using [TermsPopup] and LocalizedString
  120. FIX: Changing the Font or Material in a TextMeshPro now updates the linkedTextComponent
  121. FIX: Startup language now ignores the disabled Languages if the "Default Language" is set to "Device Language"
  122. FIX: Updated Playmaker example scene to show that it needs the Unity UI Addon.
  123. FIX: Prevented a null reference on the GetSourcePlayerPrefName function when using Google Live Synchronization in Scene's sources
  124. FIX: Google Live Synchronization was failing to load the downloaded data from the cache.
  125. 2.8.7
  126. NEW: WebService now has a password to restrict other players from modifying the localization data
  127. NEW: Importing a CSV file from script will now update the temporal files while playing
  128. NEW: A warning is now displayed in top of the LanguageSource when Google Live Sync is enabled but the spreadsheet is not up-to-date
  129. NEW: New option in the Languages tab to define if Runtime Unloading of Languages happens for the source, or if only in the device
  130. NEW: By default, the Runtime Unloading of language will not happen in the Editor (to allow for editing while playing)
  131. NEW: Missing terms are going to show hidden by default, given that they are only suggestions and are making the list to crowded
  132. NEW: Added function LocalizationManager.GetTranslatedObject(termName) to return the translated Sprite/Material/Font/etc from a Term
  133. FIX: Translating and editing terms now keep the [i2nt]...[/i2nt] sections correctly
  134. FIX: Translating texts with rich text tags was removing the tags
  135. FIX: Modified temporal language file format to recover from errors and avoid shifting the term's translations
  136. FIX: When source is set to show a warning when the term is not found, the Localized Parameters was showing the warning
  137. FIX: Corrected wrong layout in Terms list when in Retina displays (contributed by @TailoraSAS)
  138. FIX: Languages will fallback were filling their translations when doing a build
  139. 2.8.6
  140. NEW: Menu "Tools/I2 Localization/Toggle Highlight Localized" changes all localized text into "LOC:<TermName>" to easily spot errors
  141. NEW: "Bake Terms" tool now generate another class (ScriptTerms) in ScriptLocalization.cs that class have variables for the Term Names
  142. NEW: Parameters can now be localized if the parameter value is the name of an existing Term
  143. NEW: Terms filtering in the LanguageSource list, now allow prefix 'f xxx' or 'c xx' to search in translations or category
  144. FIX: Downloaded Spreadsheets will also save their key to avoid corrupting the cache when running different versions of the same app
  145. FIX: Google Live Synchronization was not updating the temporal languages files used to save memory at runtime
  146. FIX: GetCommonWordInLanguageNames now does a Case Insensitive comparison ("English (Canada)" can now match "english")
  147. FIX: Latest unity beta was failing to detect TextMeshPro when installed using the PackageManager
  148. FIX: Removed warning regarding Tizen
  149. FIX: Clicking the Language names in the Term's description was not previewing the translations
  150. FIX: Changing Fonts/Objects and Localize Targets when selecting multiple Localize components was only updating one of them
  151. FIX: Charset tool was not removing the last ] from tags
  152. FIX: ParameterManager activation was crashing IOS build in some Unity versions
  153. 2.8.5
  154. NEW: Once a day (can be configured), the editor will check if the Spreadsheet is up-to-date to avoid issues when playing in device
  155. NEW: Added Language code 'es-US' to support "Spanish (Latin Americas)"
  156. NEW: Added Toggle "Separate Specializations into Rows" to Spreadsheet export inspector, to either merge or split the specializations
  157. NEW: Startup language will now try to match an official language before trying a fallback to any custom language name or variant
  158. FIX: Fallback languages now try finding a language of the same country, and then fallback to the first from the list
  159. FIX: Removed harmless logs marked as error related to File not found or accessible
  160. FIX: Disable language Loading/Unloading on the Switch console
  161. FIX: Some character combinations where producing an error when using the CharSet tool and clicking "Copy to clipboard"
  162. FIX: When the starting language had Fallbacks, those where not loaded correctly
  163. FIX: If the Localize or LanguageSource inspector was open, changing the languages was not updating the inspector preview
  164. FIX: Removed example script using OnMouseUp to avoid showing a warning when building the game (replaced with Unity UI)
  165. 2.8.4
  166. NEW: Component CustomLocalizeCallback with a UnityEvent to set functions that should be called whenever the Language changes
  167. NEW: Localize component now has the Callback as a UnityEvent which allows calling several function and even passing parameters
  168. NEW: Customizable PlayerPrefs and FileAccess, allowing setting your own functions to handle settings and file IO
  169. NEW: Term's list can now show and filter more than 31 categories (contributed by @71M THANKS!)
  170. NEW: LocalizationManager.CurrentCulture to allow formating (e.g. string.Format(LocalizationManager.CurrentCulture, "{0:c}", 12))
  171. FIX: Tool CharSet will no longer add Plural tag characters (e.g. [i2p_Zero])
  172. FIX: Refactored BundlesManager to allow implementing a CustomBundlesManager
  173. FIX: Translating a text with a plural parameter (e.g. {[#POINTS]} ) now generate all plural forms in the target language
  174. FIX: Android devices were not auto-detecting some languages on startup
  175. FIX: Translations that starts with characters (') or (=) can now be correctly exported and imported into Google Spreadsheets
  176. FIX: Localize Target was not detected in Unity 2018+
  177. FIX: Building XCode with Append failed unless set to Replace or manually deleting the Localization files
  178. 2.8.3
  179. NEW: Runtime Memory optimization by loading/unloading languages depending on which ones is in use
  180. NEW: Added Support for the following languages: (Although Google Translate doesn't support all of them)
  181. Abkhazian, Afar, Akan, Amharic, Aragonese, Assamese, Avaric, Avestan, Aymara, Bambara, Bashkir, Bengali, Bihari,
  182. Bislama, Breton, Burmese, Chamorro, Chechen, Chichewa, Chuvash, Cornish, Corsican, Cree, Divehi, Dzongkha, Ewe,
  183. Fijian, Fulah, Guaraní, Haitian, Hausa, Herero, Hiri Motu, Interlingua, Interlingue, Igbo, Inupiaq, Ido, Inuktitut,
  184. Javanese, Kalaallisut, Kanuri, Kashmiri, Central Khmer, Kikuyu, Kinyarwanda, Kirghiz, Komi, Kongo, Kuanyama,
  185. Luxembourgish, Ganda, Limburgan, Lingala, Lao, Luba-Katanga, Manx, Malagasy, Marshallese, Nauru, Navajo, North Ndebele,
  186. Nepali, Ndonga, Sichuan Yi, South Ndebele, Occitan, Ojibwa, Church Slavic, Oromo, Oriya, Ossetian, Panjabi, Pali, Rundi,
  187. Sanskrit, Sardinian, Sindhi, Northern Sami, Samoan, Sango, Scottish Gaelic, Shona, Sinhala, Somali, Southern Sotho,
  188. Sundanese, Swati, Tajik, Tigrinya, Tibetan, Turkmen, Tagalog, Tswana, Tonga, Tsonga, Twi, Tahitian, Uighur, Venda,
  189. Volapük, Walloon, Wolof, Frisian, Yoruba, Zhuang
  190. NEW: Exposed a variant of the LocalizationManager.ApplyLocalizationParams that can get the parameters from a function
  191. NEW: Localization Target now use ScriptableObject to allow keeping extra parameters to setup the targets
  192. NEW: Android devices now properly detect the Device Language Region (no longer using Unity's Application.SystemLanguage)
  193. FIX: Two parameters in a single translation was failing if the length of the text was not the same
  194. FIX: 'Missing' icon was not showing in the Term's list when in Unity 2017+
  195. FIX: Compatibility with Window Store Apps and UWP
  196. FIX: Support for multiple Localize component in the same GameObject
  197. FIX: Increased the PostProcessBuild priority to avoid conflicting with other plugins
  198. FIX: Assigning None to a Term translation's Object Field was ignored
  199. FIX: LocalizationManager.OnLocalizeEvent now correctly releases all callbacks after finishing Play Mode in the Editor
  200. FIX: Term list in language source was showing empty space for some seconds after unselecting a term
  201. 2.8.2
  202. NEW: Improved the example scene: 'I2Localization features LocalizedString.unity'
  203. NEW: Added a version of ForceTranslate to translate several texts at the same time
  204. NEW: The translate/Translate All button will now skip terms that don't have type "Text" (avoid Materials, Fonts, etc)
  205. NEW: Restored the translate button for each translation field, but this time it shows only "T" to still allow more space
  206. NEW: Google Translate will now skip tags (e.g. [tag]..[/tag], <tag>..</tag>)
  207. NEW: Google Translate skips any text inside [i2nt].ignored.text.[i2nt]. Those tags are also not used when rendering translations
  208. NEW: Basic Hindi / Devanagari support
  209. NEW: Optimized GC Allocations, removed runtime usage of Regex
  210. NEW: By default, all scenes will be selected in the LanguageSource tools (Parsing, Renaming, Changing Category, etc)
  211. FIX: Issue with some unity versions failing when Translate All/Export with an error related to 'Rewinding' the POST result
  212. FIX: Issue where clicking the translate button was failing when terms source translation had & or similar symbols
  213. FIX: Issue with some unity versions failing when Translate All/Export with an error related to 'Rewinding' the POST result
  214. FIX: Issue where clicking the translate button was failing when terms source translation had & or similar symbols
  215. FIX: Button "Translate All" will not longer override non-empty translations when input type is Touch instead of Normal
  216. FIX: Play in Editor sometimes failed to localize when changing languages
  217. FIX: Translating all terms to a language with a variant (e.g. en-CA) was failing
  218. FIX: Example scenes had warning loading when the project was set to serialization: Force Text
  219. FIX: Long Key names are now clamped to 100 characters in the terms list so that it doesn't get too wide
  220. FIX: GoogleTranslate.ForceTranslate was not handling tags and parameters
  221. FIX: LanguageSources in the scenes were not loaded inside the editor until they were clicked
  222. FIX: Localize target AudioSource was not playing all the time
  223. FIX: Selecting a different Target type in the Localize component was not updating correctly
  224. FIX: Localization failed when there where empty slots in the Assets list (LangaugeSource) or References (localizeComponent)
  225. 2.8.1
  226. NEW: Plural support with multiple Plural forms based on the target language
  227. NEW: LocalizeDropdown now supports TMPro Dropdown
  228. NEW: Adding a Term will automatically detect the Term type (e.g. Sprite, Font,...) (instead of always defaulting to "Text")
  229. NEW: Google Translation will now generate translation for each plural form of the target language
  230. NEW: New Term Type: Child (it enables the child GameObject with the name matching the translation to that language)
  231. NEW: CharSet tool now has buttons to select all languages, clear or invert the selection
  232. NEW: Right-To-Left and Modifiers sections in the Localize inspector will now only show if the term's type is 'Text'
  233. NEW: Confirmation dialog before deleting a Language
  234. NEW: Modified the WebService to support translation requests using POST. This increases the reliability of translating large data sets.
  235. NEW: Added a close button to the Error message in the inspector.
  236. NEW: When the Verify WebService fails, it will now display the error in the inspector
  237. NEW: LocalizationManager.ApplyLocalizationParameters can now use Global, Local parameters or a dictionary of parameters
  238. NEW: LocalizedString inspector now has a button that opens the LanguageSource to allow editing the term
  239. NEW: The LanguageSource now has an option to decide if default Language will be Device Language or the first in the Languages list
  240. NEW: LanguageSource's terms list now shows 3 dots (...) after the last term if some terms were hidden by the category filter
  241. NEW: Sub Sprite Terms will now show the full path of the sprite (e.g. "Atlas.SpriteName")
  242. DEL: Removed the "Translate" button next to each translation to allow for more space. Instead, use the "Translate All" in term/language
  243. FIX: Term Type 'GameObject' now works as expected
  244. FIX: IOS AppName Localization was not exporting languages with regions
  245. FIX: Clicking the delete button ("x") of a disable button will now correctly delete it (no need to manually enable and then delete)
  246. FIX: Google Translation will not longer fail silently when the target language is not supported by Google translate
  247. FIX: Building Android Apps with a name including (') was failing
  248. FIX: Sometimes when playing in editor, changing the language didn't localize all texts
  249. FIX: Restored the GoogleTranslation.ForceTranslate (although its noted that it may fail in some unity versions having the www blocking bug)
  250. 2.8.0
  251. NEW: Downloaded Spreadsheets at runtime are now saved into a file in the persitentData folder to avoid overflowing the PlayerPrefs
  252. NEW: Example scene showing how to use LocalizedString
  253. NEW: Localize component now has a checkbox (Separate Spaces) to add extra spaces to the languages that don't add them between words.
  254. NEW: All saved translations are now encrypted by default, feel free to change the password in StringObfucator.cs for added security
  255. NEW: ScriptLocalization is no longer built by default (to speed out compilation by avoiding checking all the time)
  256. NEW: Instead of ScriptLocalization.Get(xx), it will be better to use LocalizationManager.GetTranslation(xx)
  257. NEW: TermsPopup attribute now has an optional filter (e.g. [TermsPopup("Tutorials")] ). This change was contributed by @michael THANKS!
  258. NEW: LocalizationManager.GetTranslation(Term, overrideLanguage="English") allows retrieving translations outside the current Language.
  259. NEW: Tool PARSE now also detect script reference to LocalizationManager.TryGetTranslation("term")
  260. NEW: Importing terms from Google will now remove invalid (Non-ASCII) characters from the Terms Name
  261. NEW: Selecting the Language Code in the Languages Tab, now shows a more compact list with languages and variants as childs
  262. NEW: When the localize component has a LanguageSource set as Source, it will only show the terms inside that source
  263. NEW: Added a "Detect" button after the Source selection in the Localize component to find the LanguageSource containing the selected term
  264. NEW: Added a confirmation dialog to the delete terms button
  265. DEL: Deprecated old TextMeshPro_Pre53
  266. DEL: Removed support for DFGUI (was removed from the AssetStore a while ago, if you still need support, please use I2Loc v2.7.0)
  267. FIX: Localization targets are now AutoRegistering before the Awake function of the scene. This fixes issues with the LocalizeOnAwake flag
  268. FIX: Export to Android was failing to create the correct Locale folders (i.e. values-en-rUS instead of values-en-US)
  269. FIX: TextField used to filter the Terms List in the LanguageSource was not allowing Copy/Paste
  270. FIX: Term's name can now include non-ASCII character as long as they are not controls (e.g. newline, tab, etc)
  271. FIX: Android XML with the AppName will now properly escape the name if it contains XML-ilegal characters
  272. FIX: Compatibility update for Unity 2017 when editor is set to .Net 4.6 (thanks to @nox_bello)
  273. FIX: Tool PARSE was not detecting the correct term when ScriptLocalization.Get("xx", param1, param2) had 1 or more params
  274. FIX: In some unity versions, compiling for UWP was throwing an exception when Google Live Sync was used.
  275. FIX: Exporting Chinese Variants in ANDROID was failing because Android uses (zh-rXX instead of zh-XX) [thx to @fur contribution]
  276. FIX: Disabling the last language in the LanguageSource list, was disabling some other UI controls outside that language
  277. FIX: Realtime Translation example was failing when the I2Languages.prefab was not selected
  278. FIX: TextField used to filter the Terms List in the LanguageSource will now not lose the focus when typing
  279. FIX: When clicking Translate or Translate All int the editor, it was not showing the "Translating...." message
  280. FIX: Translating texts with & was return wrong translations
  281. FIX: Sometimes the inspector width was bigger than it had to be
  282. 2.7.0
  283. NEW: To separate purposely empty translations from missing ones, the empty translations should be set to ---
  284. NEW: Google Update Frequency can now be set to "OnlyOnce" to only download data from the Spreadsheet the first time the app is executed
  285. FIX: OnMissingTranslation in the LanguageSource now is working as expected
  286. FIX: Compatibility with Unity2017 was causing the editor to not find some EditorStyles and the Translate function was looping forever
  287. FIX: Changing text alignment will not be reverted when switching languages
  288. DEL: ForceTranslate is now removed, use the GoogleTranslation.Translate instead (because Unity 2017 doesn't run www in a separate thread)
  289. 2.6.12
  290. NEW: When a term is not found, its translation will be null instead of "" to diferenciate that case from terms with empty translations
  291. FIX: Terms with empty translations will change the label's text to empty.
  292. FIX: Internal term "-" will not longer be shown in the LanguagesSources
  293. FIX: Several errors when LanguageCode was invalid or only had 1 letter
  294. FIX: Renaming terms in multiple scenes will now correctly save the scenes
  295. FIX: Clicking the inspector to preview a language and then exiting the Localize inspector was only reverting the selected object
  296. FIX: Corrected "RightToLeft Text Rendering" example scene (added names to the labels and made the buttons select the correct language)
  297. FIX: RTL Line Wrap (when maxCharacters>0) will not longer add extra lines at the bottom
  298. FIX: Language Source was downloading data from google when any delay was specified (even when the frequency was set to NEVER)
  299. FIX: Building android on some MAC was failing to resolve the staging path
  300. FIX: RTL languages will now be fixed correctly when surrounded by [] and other simbols
  301. FIX: Compile error (about SceneManager) when running the game in 5.2 or older
  302. FIX: Google Live Sync now will download the data, even if the scene is changed while the spreadsheet is been downloaded
  303. FIX: New TextMeshPro not been detected because the DLL changed its signature
  304. 2.6.11
  305. NEW: App Name can now be localized in both IOS and Android
  306. NEW: Localize term now has two string fields to add a Prefix & Suffix to the translations (e.g. allows adding : at the end of the text)
  307. NEW: Example of how to change the language using a Unity UI Dropdown (component SetLanguageDropdown) see the "uGUI Localization" Scene
  308. FIX: IOS Store Integration now works automatically
  309. FIX: Parsing terms was not updating the Term's Usage
  310. FIX: Better support for arabic texts with tags
  311. FIX: Previewing a language in the editor by clicking the Language name, will now respect the RTL or LTR direction depending on the language
  312. FIX: Removed warnings in Unity 5.6
  313. FIX: TextMeshPro not updating the font when using a material name in a subfolder of the Resources
  314. FIX: TextMeshPro now wraps correctly texts from Right-To-Left Languages (e.g. Arabic)
  315. FIX: CharSet tool will now correctly find what Arabic and other RTL characters are used (will apply RTLfix when adding the characters)
  316. FIX: TextMeshPro (paid version, the one with the source code) was not been detected correctly
  317. FIX: Translating a term inferring from Label's text, will no longer remove the non ASCII characters
  318. FIX: Google Live Sync will now auto-update the scene texts without needing to change the current language
  319. FIX: LocalizationManager.GetTermData will now call InitializeIfNeeded, which also now validates that there are sources available
  320. FIX: Added validation for undefined BuildTargetGroup.Switch in 5.6
  321. 2.6.10
  322. NEW: PlayMaker support (Actions: Get/SetCurrentLangauge, SetNextLanguage, Get/SetTerm, GetTranslation)
  323. NEW: Button next to the plurals tab to show if the DisabledLanguages should show the translation or should be hidden
  324. NEW: Massive inspector speed improvement when Parsing terms, selecting a LanguageSource, etc
  325. NEW: LocalizationManager.ApplyLocalizationParams now accepts a general GameObject instead of forcing a LocalizeCmp. This allows using LOCAL parameters without localize component
  326. NEW: added options for parameters when calling ScriptLocalization.Get(term, true, 0, false, applyParameters:true, localParamsRoot:gameObject)
  327. NEW: Clicking a Translation in the Localize component will now Preview that language in the entire UI
  328. NEW: Added a button at the top of the Term's List in the LanguageSource to refresh the translation shown in the Scene (calls LocalizeAll(true))
  329. NEW: Menu option to also call the LocalizeAll (Menu/I2/Localization/Refresh Translations). This is useful if the translation is changed and should be updated in several UI elements
  330. NEW: LocalizationManager.GetTermsList() now can have a parameter to only show the terms of that category (e.g. .GetTermsList("Tutorial"))
  331. NEW: LocalizationManager.HasLanguage(..) and .GetAllLanguages(..) now has optional parameter SkipDisabled to skip disabled languages. Default=true
  332. NEW: Build ScriptLocalization.cs tool now has a button to select the terms previously built
  333. FIX: Disabling a language will skip it when selecting the startup language
  334. FIX: Selecting a different LanguageSource will not longer set the categories to None, instead it will revert to Everything
  335. FIX: Now the Scene can preview the translation of disabled languages. Just click in the language name next to the Terms's description (localize component OR language Source)
  336. FIX: Compile errors when building for Windows Phone or WSA
  337. FIX: Generating the files for the Store Integration (Android, IOS) was also exporting the disabled languages
  338. FIX: Alignment option for TextMeshPro now works with the latest TextMeshPro version (v1.0.55.52 Beta 3)
  339. FIX: LocalizationManager.LocalizeAll is now internally handled at the end of the frame (using a coroutine) to handle multiple localization in the same frame and timing issues when start Playing
  340. FIX: A term will no longer show as missing translation (yellow + italics) if the missing translation belongs to a disabled language
  341. FIX: ResourceManager.CleanResourceCache will now only be called when a level is loaded to avoid frame rate spikes in the middle of the game
  342. FIX: Added support for the new TextMeshPro (free version)
  343. 2.6.9
  344. NEW: AboutWindow will never open automatically, instead there will be an small warning next to the version number
  345. NEW: LocalizedString (link to documentation)
  346. NEW: Changing .NET CurrentCulture when the language changes is now optional. Its disabled by default and can be enabled by adding an AutoChangeCultureInfo component to your first scene
  347. NEW: Terms can now be set to <none> to avoid localizing it (e.g. Don't localize Label's text, but do localize Label's font)
  348. NEW: Languages can now be disabled (useful for having data columns in the spreadsheet) Just add a $ in front of the language name in the Spreadsheet or uncheck the toggle in the LanguageSource
  349. NEW: Clicking the Language name next to the translations will preview the text in that language
  350. FIX: Event_OnSourceUpdateFromGoogle is now called with ReceivedNewData==false whenever the languagesource is up-to-date
  351. FIX: Auto-detection of plugins was not working correctly for IOS
  352. FIX: Removed warning "Unsupported encoding: 'UTF-8,text/plain'" that was happening when translating a text
  353. FIX: RTL fix was not been applied to Right-To-Left languages when EnableChangingCultureInfo was not called or false
  354. FIX: Changing Category was not marking the scene Dirty
  355. 2.6.8
  356. DEL: [i2auto] will not longer be used (if your spreadsheets have that, you should remove all [i2auto] texts and reimport to the LanguageSource)
  357. DEL: Translations will not longer be marked as translated by google (this speed the import/export process)
  358. NEW: When a term is not defined for some language, it can be set to display (Empty, Fallback or a Warning) The setting is in I2Languages.prefab Language Tab
  359. NEW: Localize components will execute the Localization Callback even without a valid Translated Term.
  360. NEW: When creating a term in the Localize component, the first language (e.g. English) will be auto-filled with the label's text
  361. NEW: Added two more parameters to the callback when Import_Google finishes (Event_OnSourceUpdateFromGoogle(LanguageSource, bool ReceivedNewData, string errorMsg))
  362. NEW: Selecting the checkbox next to the Term's list in the LanguageSource and then clicking the Term Usage button selects ALL objects using all the selected terms
  363. NEW: Surrounding a text with the tag <ignoreRTL>, ignores converting it to RTL (e.g. "<ignoreRTL>2<ignoreRTL>. بدفع مبلغ")
  364. NEW: New toggle (Ignore Numbers), next to the Max Line Length in the localize component, to automatically avoid converting numbers when parsing RTL texts
  365. NEW: .NET CurrentCulture is changed based on the current language to make all culture-dependant operations to use the properties of the selected language
  366. NEW: Detecting if the language is Right-To-Left will now be using the CurrentCulture settings as that maybe more precise
  367. FIX: Right-To-Left languages will not adjust the alignment if the original alignment was CENTER
  368. FIX: 2DToolkit now allows adjusting the alignment if the language is RTL
  369. FIX: Add/Remove language was not marking the LanguageSource as dirty and the changes could have been getting lost
  370. FIX: Copy/Paste a Localize component into a new GameObject will properly update the Target reference
  371. FIX: If the WebService was set in a LanguageSource inside the scene and not in the I2Languages.prefab, Google Translate/Export/Import wasn't working.
  372. FIX: Compile erors when using an old version of TextMeshPro (requiring TextMeshPro_Pre53)
  373. FIX: Texts for Right-To-Left languages containing multiple lines was showing extra lines when using \r\n for new lines
  374. FIX: LanguageSourceData.Import_Google was not executing when Auto-Update was set to NEVER (even if ForceUpdate was true)
  375. FIX: Accessing www.text was returning an Encoding error in the latest patch releases (5.4.1p3 and 5.3.5p7)
  376. 2.6.7
  377. NEW: SpriteRenderer can now be localized
  378. NEW: Translations can have Parameters (e.g. "The winner is {[WINNER}]") and at runtime the tag is replaced by its value by using a local or global parameter
  379. NEW: Local parameters can be set by adding a LocalizationParamsManager component to the gameObject, and it has a list of parameters (i.e. <Name, Value> pairs)
  380. NEW: Global parameters can be set by adding a ILocalizationParamsManager class to the LocalizationManager.ParamsManager list
  381. NEW: Example Scene named "Callbacks and Parameters" showing how to modify the translations using Callbacks, Local Parameters and Global Parameters
  382. NEW: Unity UI Dropdowns can be localized by adding the LocalizeDropdown component
  383. NEW: Localized objects (Textures, sprites) can now be loaded from a bundled by registering a ResourceManager_Bundles (see RegisterBundlesManager.cs example)
  384. NEW: ScriptLocalization.Get(term) will now automatically fix it for RTL if the current language is Right-To-Left (use .Get(term, false) to avoid that)
  385. NEW: Parse Terms in Scripts will now match terms in the form "LocalizationManager.GetTranslation" as well as "ScriptLocalization.Get"
  386. NEW: ScriptLocalization.cs is now autogenerated to avoid overriding existing localizations. That file is also now moved into the Assets\I2 folder
  387. NEW: Localize component now has a toogle "Force Localize" that should be true when the translation has parameters to force the localization when the object is enabled
  388. NEW: Tool CharSet now has a button "Copy To Clipboard"
  389. NEW: Local parameters SetParameterValue function now has an optional parameter to skip the localization (useful when setting several parameters in a frame)
  390. NEW: LocalizationParamsManager.OnLocalize() executes the localization with the parameters previusly set.
  391. FIX: Auto-Sync from Google Spreadsheet was not detecting the new versions correctly and wasn't loading from the cache.
  392. FIX: Right-To-Left texts will now correctly handle ritch-text tags (e.g. <color=red>..</color> and [FF0000]..[-], etc)
  393. FIX: Expanding/Collapsing the Terms, References or OnLocalize Callback in the Localize component is now remembered
  394. FIX: Changing <none> in the terms selection list by <inferred from text> as thats more understandable
  395. FIX: Selecting <inferred from text> from the list of term will use the Inferred one.
  396. FIX: Selected Term is now drawn in a light Yellow when it is inferred (previously was dark yellow and wasn't as visible in the Editor Light Theme)
  397. FIX: Renamed button at the bottom of the terms description to make it more understandable. From "Merge" to "Rename".
  398. FIX: When clicking that Merge button, the current term is automatically selected as the term to rename
  399. FIX: Exporting a csv file with auto-translated terms containing (,) was generating extra columns with "[i2auto]".
  400. FIX: ParseTerms in scripts was not detecting the term when the function had spaces (e.g. ScriptLocalization.Get ( "term" ))
  401. 2.6.6
  402. NEW: Allow multiple Localize component in the same object
  403. NEW: TextMesh Pro localization when changing material (e.g. "ARIAL SDF - Outline") will now also find and use the corresponding font (e.g. "ARIAL SDF")
  404. NEW: Added a Delay to the Auto-update from Google to wait some time before updating. To prevent a lag on startup
  405. NEW: Exporting to a spreadsheet will sort the terms
  406. NEW: Charset Tool allows adding upper and lower versions of characters even when one character variant is not found
  407. FIX: Empty languages can not longer be added by clicking the "Add" button
  408. FIX: Columns with empty language name in Google Spreadsheet or CSV files are now skipped
  409. FIX: Sometimes when playing in the Devices, I2 Localization was using old localization data from PlayerPrefs
  410. FIX: Google Live Synchronization was not detecting correctly the Spreadsheet changes
  411. FIX: Removed a debug log that was printing the entire content of the downloaded spreadsheet, making the log file hard to read
  412. FIX: Removing a Term from the LanguageSource was still displaying it in the Terms List even though they werent there anymore
  413. FIX: Compile warning related missing BuildTargetGroups when detecting installed Plugins
  414. FIX: Translation of UPPERCASE texts are now handled correctly
  415. FIX: Categories/terms matching part of another category will export correctly (e.g. TUTORIAL and TUTORIAL1\Welcome)
  416. FIX: I2 About Window will not longer shown when doing a build or when in batch-mode
  417. FIX: Texts starting with a tag (e.g. [xxx]) are now accepted (useful for NGUI color tags)
  418. 2.6.5
  419. (requires a new WebService: v4)
  420. NEW: Localize.Term = xxx works now the same that executing Localize.SetTerm(xxx)
  421. NEW: Importing a big Spreadsheet is 20-70 times faster than before
  422. NEW: Added a Translate button next to each language to bulk Translate all missing terms for that language
  423. NEW: Tool to find which characters are used in the languages (useful to create bitmap fonts)
  424. NEW: Adding a term to a Language source without languages, will automatically create "English"
  425. NEW: NGUI and TextMeshPro example scenes now also show changing Fonts based on the language
  426. NEW: Viewing a big LanguageSource is now smoother even when seeing several thousands terms.
  427. NEW: Added a dropdown menu to select the File Encoding (UTF8, ANSI, etc) of the local CSV file
  428. NEW: Use of the WebService to get the Google Translations (previously it was a hack that parsed the google web but failed whenever google changed their look)
  429. FIX: Translating Terms was skipping the first 2 letters
  430. FIX: Translating text with Title Case (This Is An Example) was failing with google
  431. FIX: Translation using Term Category (Tutorial/New Example)
  432. FIX: Removed delay when selecting languageSources caused by the parsing of terms in scripts, now scripts are only parsed when using the Parse Scripts Tool
  433. FIX: TextMeshPro labels will auto-size correctly when switching languages
  434. FIX: 2D Toolkit example scene was corruptedLoca
  435. FIX: localizeComponent: Button "Add term to Source" for a secondary Term will add the term to the source containing the primary term.
  436. FIX: Selecting "None" as a referenced object will no longer produce a null reference exception
  437. FIX: Errors reporting that DontDestroyOnLoad can only be called in Play mode
  438. FIX: Errors when some referenced asset was destroyed and the plugin tried to release it
  439. 2.6.4
  440. NEW: SVG Importer has been integrated (support for SVGImage and SVGRenderer: localizes VectorGraphic and Material)
  441. NEW: Updated to support TextMeshPro 5.2 beta 3.1 (previous versions need to change TextMeshPro by TextMeshPro_Pre53 in the scripting define symbols)
  442. NEW: I2Languages.prefab has been moved to I2/Resources to make update easier (just delete I2/Common and I2/Localization and import the new package)
  443. NEW: The spreadsheet will not be auto-downloaded when running in the editor as the local language source its supposed to be the most up-to-date
  444. NEW: Better compatibility with UnityScript (added method versions to avoid default parameters, still needs to move I2L to the Plugins folder)
  445. NEW: Inferred terms will be changed to normal terms as soon as a matching term its found
  446. NEW: Added variables LocalizeManager.CurrentRegion and .CurrentRegionCode to get the region part of the language (e.g. "en-US" -> "US")
  447. FIX: When re-starting the game after downloading a modified spreadsheet, it was loading the old translations
  448. FIX: Error shown in the console when playing the game in the editor while a Localize component its shown in the Inspector
  449. FIX: Parsing scenes failed on Unity 5.3+ when scenes where not in Assets folder
  450. FIX: Adding a localize term before adding a target (TMPro label, UI Text, etc) failed to get the inferred Term
  451. FIX: Selecting a Term in the localize Secondary Terms Tab, was changing the label's text to the name of the font/atlas
  452. FIX: TextMeshPro was producing warnings regarding materials when previewing different fonts in Editor and not in Playing mode
  453. FIX: Marking scene dirty when Localize callback and other variables are changed
  454. FIX: Button "Add Term To Source" in the localize inspector was sometime adding the term to the wrong LanguageSource
  455. FIX: Selecting <inferred from text> from the term's list made that option disapear the next time the popup was openned
  456. FIX: IOS integragion will now correctly generate Info.plist instead of info.plist
  457. FIX: When copying a Localize component and pasting it in other object will no longer keep a reference to the previous object
  458. 2.6.3
  459. NEW: IOS Store Integration (adds the languages to the Info.plist file)
  460. NEW: If the localize component, can find its inferred term in a source, it will use that term and stop inferring it
  461. NEW: When adding a term to a source, the scene is parsed and every object inferring that term will start using it
  462. NEW: In LanguageSource inspector, button "Add Terms" and "Remove Term" will use the selected term even if it doesn't have the checkbox ticked
  463. NEW: When auto-generating ScriptLocalization.cs, if the file was moved, the plugin finds it and regenerate it in the new location
  464. NEW: Non printable/special characters in the Terms name are removed from inferred terms to increase legibility
  465. NEW: On the Terms list, the buttons at the bottom (All, None, Used, Not Used, Missing) now select from the visible terms not the full list.
  466. NEW: Button "Show" next to each Language in the LanguageSource to preview all LocalizeComponents in that language
  467. NEW: Clicking on a translation previews how it looks, but selecting another object will now stop the preview and revert to the previus language
  468. FIX: Compile error in TitleCase(s) when building for Windows Store
  469. FIX: Android Store Integration was using a wrong path and now all generated files are in Plugins\Android\I2Localization
  470. FIX: Textfield used to type the new category now allows typing \ and / to create subcategories
  471. FIX: On the Terms list, the filters (Used, NotUsed, Missing) will now work correctly with categorized terms
  472. FIX: Improved performance on the LanguageSource and Localize inspector. Now selecting a big languageSource its around 4 times faster
  473. 2.6.2
  474. NEW: Plugin now supports Unity 5.3
  475. NEW: Android Store Integration (adds strings.xml for each language so that the store detects the application is localized)
  476. NEW: When editing a term, Translate and Translate All buttons will translate the Label's text instead of the Term name
  477. NEW: Tool to find No Localized objects now saves the Include and Exclude filters
  478. NEW: Added a Refresh button on top of the Terms list to quickly parse all localized objects in the scene
  479. FIX: Alignment will not revert to "Left" when switching languages. RTL languages will still be adjusted correctly.
  480. FIX: Parse terms was not detecting inferred terms used in Localize components that were not previously opened in the inspector
  481. FIX: Importing spreadsheets with auto-translated terms having multiple lines was adding extra quotes.
  482. FIX: Google translate Language code of all chinese variants was updated to the right code
  483. FIX: Changing Term Categories or Renaming it will now update the language Source
  484. FIX: Add button (+) after the Terms list is now always at the end of the terms, even when a term is expanded
  485. FIX: When changing category in a term that its not in the source, it will display an error box showing why it fails
  486. FIX: Sometimes the Resources folder failed to be created if it was previously created (when generating I2Languages.prefab)
  487. FIX: TextField to edit the Term's description and translation has word wrap enabled to avoid expanding the inspector on long lines
  488. FIX: Vertical scrollbar in the Terms list will now hide when all terms fit in the screen
  489. DEL: Removed checking for installed plugins when scripts are compiled (will only happen at startup or if force from the menu)
  490. 2.6.1
  491. NEW: Multiline texts can be fixed correctly for RTL languages by specifiying the maximum line length (Localize Inspector)
  492. NEW: Added a checkbox to the Localize Inspector to allow changing alignment for RTL Languages (Right when RTL, Left otherwise)
  493. NEW: Adding API for accessing translated objects: (LanguageSource and Localize).AddAsset, .HasAsset, .FindAsset
  494. NEW: Localize.FinalTerm and .FinalSecondaryTerm are now public variables that can be used in the OnLocalizationCallback
  495. FIX: Switched loc order of Main and SecondaryTerms to localice the text/sprite after the font/atlas was changed
  496. FIX: Editor UI for the Terms translation was overflowing.
  497. FIX: Automatically Importing from Google will not longer clear the localization data
  498. FIX: Faster startup by avoding calling LanguageSourceData.UpdateDictionary multiple times
  499. DEL: Projects using Unity new UI no longer have to add UGUI to their Scripting Define Symbols
  500. DEL: Projects using TextMeshPro no longer have to add TMProBeta to their Scripting Define Symbols
  501. DEL: Cleaned some variables in the Inspectors that were not longer needed
  502. Thanks to 00christian00 and vicenterusso for their contributions!!
  503. 2.6.0
  504. NEW: Localize component now has a "Translate ALL" button
  505. NEW: Term can be flagged as "translated by human" or "translated by Google Translator"
  506. NEW: The Callback in the Localize component now show all public methods of ALL monobehaviors in the Target object
  507. NEW: Tool 'Parse Localized Terms" now allows searching for term usage in the SCENES and in the SCRIPTS
  508. NEW: Localize was optimized to avoid localizing every time the component is enabled
  509. NEW: Localize has now a setting for Pre-Localize on Awake or for waiting until the object is enabled.
  510. NEW: Downloading from google uses now a custom format instead of JSON to avoid parsing errors
  511. NEW: Method LocalizationManager.FixRTL_IfNeeded(string) does RTL fixing if the current language is RTL
  512. NEW: TermsPopup attribute was added to display a string as a popup with the list of terms
  513. FIX: The Plugin Manager window now allows op-out of automatic notification whenever there is a new version.
  514. FIX: Tools tab now shows error messages and warnings
  515. FIX: Corrected compile errors regarding ambiguous calls that happened on some projects/platforms
  516. FIX: Fixed compile error when building for METRO about missing ToTitleCase method in the CultureInfo
  517. FIX: NGUI LanguagePopup component now starts with the saved language instead of the first one in the list
  518. FIX: Chinese Simplified/Traditional are now correctly detected when running on the device
  519. FIX: SetTerm was failing when called on a disabled Object
  520. Thanks to tacticsofttech for its contribution to the Parse terms in Scripts!!
  521. 2.5.0
  522. - NEW: Terms can now have separated translations for Touch devices. This allows specifying "tap" instead of "click"
  523. - NEW: Increased performance when browsing the terms list in the Language Source
  524. - NEW: Add a new version to the required Google Service
  525. - NEW: Localize can modify case not only to UPPER and lower but to UpperFirst("This is an example") and to Title ("This Is An Example")
  526. - NEW: Scenes List in the Tools tab can now be collapsed
  527. - FIX: Google Translation was failing for some strings with mixed or title casing e.g. ("Not Enough Rope" was not translating)
  528. - FIX: SetLanguage component Inspector was not showing. Now it displays a dropdown to select the language
  529. 2.4.5
  530. - NEW: Import/Export CSV files now supports changing the separator character (Comma, Semicolon, Tab)
  531. - NEW: The Localization is now initialized when calling HasLanguage to allow changing the language before requesting any Translation
  532. - NEW: The tool to bake the terms into ScriptLocalization.cs now replaces invalid characters by '_'
  533. - NEW: Terms in ScriptLocalization.cs can now be clamped to a maximum length, Terms that clash are enumatated (Examp_1, Examp_2)
  534. - NEW: When creating languages, those with a variant didn't list the base language, now the list includes the base (e.g English)
  535. - NEW: All languages in the Add Language popup show the Language Code for easier identification
  536. - NEW: Not all international language codes are supported by Google Translator. A fallback language is now provided for those.
  537. - FIX: Translating to some languages by using the "Translate" button on the Localize component was failing for some languages
  538. - FIX: When the Language Source had lot of languages, the Terms list was sometimes displayed empty when scrolling
  539. 2.4.4
  540. - NEW: Menu: Tools\I2 Localization\About opens a window showing if there is a new version and has shortcuts to useful information
  541. - NEW: Whenever there is a new version the editor automatically alert you. There are options to opt-out or skip a version
  542. - NEW: Clicking the Translate button next to the Term translations will now use the Term name if no other translation is found
  543. - NEW: Language Source Inspector has now better performance showing the list of terms, languages and scenes
  544. - NEW: The list of languages in the Language Source inspector is now expanded to cover the available space
  545. - NEW: LocalizationCallback can now access the static variables CallBackTerm, CallBackSecondaryTerm, MainTranslation, SecondaryTranslation
  546. - FIX: No longer need to call LocalizationManager.UpdateSource and UpdateDictionary before using LocalizationManager.GetTermsList()
  547. - FIX: NGUI example scene had missing references as the example NGUI atlas changed
  548. - FIX: The UpgradeManager was failing on Unity 5 when accessing the BuildTargetGroup.Unknown
  549. - FIX: Importing from CSV and Google Spreadsheets was ignoring the Language Codes and merging those with identical name
  550. 2.4.3
  551. - NEW: Localizing UGUI sprites now supports sprites of type "Multiple"
  552. - NEW: Menu Options to disable/enable auto plugins detection (menu: Tools/I2 Localization/Enable Plugins/...)
  553. - FIX: Using Localize.SetTerm(term) on the Start or Awake functions will not get reverted to the default value
  554. - FIX: Checks for when Localizing prefabs but the referenced objects are not found.
  555. - FIX: Added support for Unity 5.0.0f3
  556. 2.4.2
  557. - NEW: Added an optional bool to allow fixing for RTL when using translation = ScriptLocalization.Get(xxx, true)
  558. - FIX: Realtime translation was failing on some mobile devices
  559. - FIX: Fix error when localizing not empty or non existing terms(this caused Sprites and other Secondary Translations to fail)
  560. - FIX: Terms are now saved after importing them from google
  561. 2.4.1 f2
  562. - NEW: ScriptLocalization.cs and I2Language.prefab are now autogenerated so they will not override existing localizations
  563. - NEW: The plugin now detects when using TextMeshPro or TextMeshPro beta, and adds a conditional TMProBeta if the beta is used
  564. - NEW: Local Spreadsheets can now be saved as CSV or CSV renamed as TXT (this last avoids the Unity crash when on Mac)
  565. - FIX: OnLocalize Callbacks were not called inside the IDE.
  566. - FIX: Errors when compiling to WebPlayer
  567. 2.4.0
  568. - NEW: Added support for multiple Global Sources. By default is only "I2Languages" but you can add any other in LocalizationManager.GlobalSources
  569. - NEW: Dynamic Translation work now in the game by using Google Translator to translate chat messages and other dynamic texts.
  570. - NEW: Localize component will detect automatically which sources contain the translation for its term
  571. - NEW: Tool "Find No Localized Labels" can now filter which labels to include/exclude
  572. - NEW: There is now a button to unlink the Google Spreadsheet Key
  573. - NEW: Added quick links in the Source and Localize inspector to access the Forum, Tutorials and Documentation
  574. - NEW: Google WebService now has a version number and the plugin will detect if that version is supported and ask you to upgrade
  575. - FIX: Compile errors that prevented compiling for W8P and METRO
  576. - FIX: Adding a Localize component at run time will now initialize its variables correctly
  577. - FIX: Renamed some Example scripts to avoid conflicts. Also added them to the I2.Loc namespace
  578. - FIX: When secondary translation is not set, it will take the value from the object (e.g. Font Name, Atlas, etc)
  579. - FIX: Tool "Find No Localized Labels" now work with TextMesh, TextMeshPro, UI.Text, etc.
  580. - FIX: Avoided creating multiple PlayerPrefs entries for the same language Source (LastGoogleUpdateXXXX)
  581. - FIX: No longer is possible to rename/create a term if the new term already exists.
  582. - DEL: The console message saying that no terms were found in the scene is now removed and only shown as part of the inspector
  583. 2.3.2
  584. - NEW: import CSV fill autodetect if the Type or Desc columns are missing
  585. - NEW: SpriteCollection shows now in the Type List in the editor for TK2D
  586. - NEW: Added callback for when a language source is autodated from Google (Event_OnSourceUpdateFromGoogle)
  587. - NEW: Increased translation lookup speed by using a fast string comparer in the dictionary
  588. - NEW: Added a toggle in the Language Source to allow lookup the term with Case Insensitive comparison
  589. - FIX: Terms list on the source will not longer cut off visible elements
  590. - FIX: LoalizationManager.GetLanguageFromCode was returing the code instead of the language name
  591. - FIX: Localization is now skipped if the Main and Secondary translations aren't changed
  592. 2.3.1
  593. - NEW: Support for TextMeshPro UGUI objects
  594. - NEW: Auto Update from google spreadsheets can now be set to ALWAYS, NEVER, DAILY, WEEKLY, MONTHLY
  595. - NEW: Added functions to get/change the language based on the language code
  596. - NEW: Added functions TryGetTranslation to both LocalizationManager and LanguageSource
  597. - NEW: Language is now only remembered if the user changes it manually and ruled by the device language otherwise.
  598. - FIX: The plugin is now Initialized automatically when requesting a translation or language code
  599. - FIX: Changing the term category was not displaying correctly until the project was reopened
  600. - FIX: Exporting to google as "Add New" was changing the order of languages
  601. - FIX: Compile errors that prevented deploying to Windows Store
  602. - FIX: The editor was not allowing to add language regions (e.g. English (US), English (CA))
  603. - FIX: Auto Update Google dropdown box was not rendering correctly on all screen sizes
  604. 2.3.0
  605. - NEW: Google Synchronization now uses a Web Service to avoid using the username/password
  606. - NEW: When playing (even on a device) the game will download the latest changes to the spreadsheet
  607. - NEW: Added support for both the "Classic" and new Google Spreadsheets
  608. - NEW: Button to create a new spreadsheet
  609. - NEW: Importing/Exporting to Google is now an Async operation that doesn't lock the editor and can be canceled
  610. - NEW: Next to the Google Spreadsheet Key there is now a button to open it in the browser
  611. - NEW: Google Import/Export tab will be the default (instead of local file) whenever a spreadsheet Key is set
  612. - NEW: Import/Export can now be set to Replace all Terms, Merge or only add the New Terms
  613. - NEW: A warning is now shown when using a LanguageSource other than the recommended I2Languages.prefab
  614. - NEW: Menu option to open the Global Source I2Languages.prefab (Menu : Tools/I2/Localization/Open GLobal Source)
  615. - NEW: Google Spreadsheet now has a new format, where the description and term type are defined as notes
  616. - FIX: When switching terms or tabs the textfields will not longer keep the previous text
  617. - DEL: Removed support for the old NGUI TextAssets as NGUI has moved into CSV files
  618. - DEL: Removed Google API libraries dependencies
  619. - DEL: The spreadsheet Key is no longer needed. The web service will get all the keys and allow you to select
  620. 2.2.1 b1
  621. - NEW: Improved Language Recognition. It will now fallback to any region of the same Language
  622. - NEW: Right To Left text rendering example scene
  623. - NEW: DFGUI labels and buttons will be able to localize dynamic and bitmap fonts
  624. - NEW: UI.RawImage Localization
  625. - FIX: UI.Sprite Localization was not loading the Sprite from the Resource folder
  626. - FIX: Up and Down arrows on the Languages list was not ordering the languages
  627. - FIX: Detection of Unity UI (updated to 4.6)
  628. - FIX: Unity UI example scene now uses the 4.6 UI classes
  629. - FIX: Right To Left languages was not detected because the language code wasn't being applied
  630. 2.2.0
  631. - NEW: Added support for TextMeshPro
  632. - NEW: Terms can now have category and subcategories (e.g. Tutorials/Tutorial1/Startup/Title)
  633. - FIX: NGUI is now detected by looking for the NGUIDebug class instead of UIPanel
  634. 2.1.0 f1
  635. - NEW: After importing CSV or Google Spreadsheets, the category filter is set to show every term
  636. - NEW: Terms list is now fully expanded on the Language Source
  637. - NEW: Localize Component now has an Option to convert to (Upper, Lower, DontModify) the translations
  638. - FIX: Validations for when importing Spreadsheets with empty columns/languages
  639. 2.1.0 b3
  640. - NEW: The plugin is now compatible with Unity 5 (up to alpha 11)
  641. - NEW: Register a function in the event LocalizationManager.OnLocalizeEvent to get called when the language changes
  642. - FIX: Updated the example scenes to use the new Language Sources
  643. - FIX: Terms are now saved correctly after importing a CSV or a Google Spreadsheet
  644. - FIX: Allowed methods with one argument to be used as Localization CallBacks
  645. - FIX: SelectNoLocalizedLabels was running every frame after executed
  646. - DEL: Removed button to select CSV file. Now the Import and Export buttons display the open/save dialog
  647. 2.1.0 b2
  648. - FIX: W8P and Metro compatibility
  649. - FIX: Compiler warnings
  650. 2.1.0 b1
  651. - NEW: Terms database is now saved within the LanguageSource and not a separated Language Files
  652. - NEW: The selected language is now saved to the PlayerPrefs into "I2 Language"
  653. - NEW: On the Localize Component, creating a key shows a list of terms as you type and their usage
  654. - NEW: On the Localize Component, when changing the translation of a term shows a preview in the target (label/etc)
  655. - NEW: When selecting a Term in the Localize Component, the list can be filtered with the Create Term string
  656. - NEW: On the Localize Component, the Terms List is now sorted Case Insensitive
  657. - NEW: The auto-enable Plugins will set the Script Define Symbols for ALL platforms (IOS,Android,Web,etc)
  658. - NEW: In the Localize Component, the textField thats used for create a key now has a clear button to easy editing
  659. - NEW: If a term is not found when localizing an object the object is left untouched (Previously labels got empty)
  660. - NEW: There is now a button in the Localize Component to quickly rename a Term in the current scene
  661. - DEL: Removing the Editor Databased used to cache the Language Files because all the info is now in the LanguageSource
  662. - FIX: Selecting the CSV file to export will now allow you to create a new file
  663. - FIX: Added a message to explain when exporting fails because the file is Read-Only or its open in other program
  664. - FIX: When exporting to a file inside the project, the "Assets/" section was been skipped
  665. - FIX: Import and Export CSV files now also works on when the editor is set to Web Player
  666. - FIX: Exporting CSV now uses UTF8 encoding to keep special characters
  667. - FIX: The "Open Source" button on the Localize Component now selects the Primary or Secondary term based on the selected tab
  668. - FIX: Terms are now trimmed because spaces at the end/beggining can lead to confusions
  669. - FIX: The list of terms was not showing correctly when selecting MISSING but unselecting USED
  670. 2.0.3 f1
  671. - NEW: Support for localizing 2D-ToolKit (TextMeshes and Sprites)
  672. 2.0.3 b2
  673. - NEW: When more than one localization type is available, the plugin allows you to select which component to localize
  674. - FIX: When localizing secondary elements (Atlas, Fonts) the system checks that they still exist to avoid null exceptions
  675. - FIX: Localization of Prefab now have the lowest priority to easy localizing labels/sprites with childs
  676. 2.0.3 b1
  677. - NEW: The plugin will now check and enable by default all Plugins included in the project (NGUI,DFGUI,UGUI)
  678. - NEW: Global Localization Source (I2Languages) its now empty by default to make it easy to start a new project
  679. - FIX: Moved the Terms used in each example scene to a new Language Source inside each scene
  680. - DEL: Removed Resources.UnloadAsset when changing the localization to avoid unloading referenced assets
  681. 2.0.2 f1
  682. - NEW: UIFonts fonts can now be localized on NGUI
  683. - FIX: Some example scenes were corrupted
  684. - FIX: Modified the plugin to be compatible with Unity5
  685. 2.0.1 f1
  686. - NEW: When an object is set as a translation, the object is also added automatically to the Reference array
  687. - FIX: Importing from Google Spreadsheets will not longer generate 'Description' as a language
  688. - FIX: The editor will show a message if exporting to Google fails
  689. - FIX: The variable is IsLeft2Right was renamed as IsRight2Left to match its behavior
  690. - FIX: Importing Google Spreadsheets no longer duplicate the languages
  691. - FIX: Importing CSV was skipping some languages and not parsing terms after import
  692. - FIX: Converted encoded translations into its ASCII characters ("Il s\x26#39;agit" -> "Il s'agit")
  693. - FIX: Terms Section in the Localize custom editor can be collapsed
  694. - FIX: Localize custom editor becomes more compact and easy to read when several sections are collapsed
  695. - FIX: Expanded Terms in the Terms Tab of the LanguageSource will display an Arrow to make evident that they can be collapsed
  696. - FIX: Terms description is now collapsed automatically when another term is selected
  697. - FIX: The spreadsheet was been opened in the browser even if the Open Spreadsheet after Export flag was disabled
  698. 2.0.0 a2
  699. - NEW: Support for languagges using Right To Left (RTL) with correct rendering for Arabic languages.
  700. - NEW: Added a toggle on the Localize component to allow discarding RTL processing for selected objects.
  701. - NEW: Languages can now have a Language code to allow for Language Regions (e.g. English Canada vs English United States)
  702. - NEW: Automatic Translation using Google Services will use the language code instead of the Language Name
  703. - NEW: CSV and Google Spreadsheets will save the language code if needed
  704. - FIX: When adding a language to a source the editor will not switch to the Terms tab. That to allows adding several languages at once.
  705. - FIX: Menu options was moved from "Menu > Assets > I2 Localization" to "Tools > I2 Localization"
  706. - FIX: Localization Manager will not allow changing to a language that doesn't exist
  707. 2.0.0 a1
  708. - NEW: Support for Daikon Forge GUI components
  709. - NEW: Support for uGUI as of the Unity 4.6 beta 2 (this is only available for users in the beta test group)
  710. - NEW: Terms can now have a type (Text, Object, Audio, Font, Sprite)
  711. - NEW: Terms can be set to generate the ScriptLocalization.cs for Compile-Time-Checking of used Terms.
  712. - FIX: Changed the Terms preview based on the Term Type
  713. - FIX: Language Sources can now be in the Resources folder, the scene or bundled
  714. - FIX: Component Localize allows to change the target for localizing more than one component in one GameObject
  715. 1.8.0
  716. - NEW: Callbacks can be setup on the editor for correct concatenation according to the language
  717. - NEW: Event system for callbacks with reflection
  718. - NEW: Moved all localization calls into events for localizing more types of components without much code change
  719. - FIX: Moved NGUI and UnityStandard localization code into separated files to minimize dependencies
  720. 1.7.0
  721. - NEW: Localize component has now Primary and Secondary Terms
  722. - NEW: Secondary term allows localizing Fonts on Labels
  723. - NEW: Secondary term allows localizing Atlas on Sprites
  724. - NEW: Support for localizing Prefabs
  725. - NEW: Support for localizing GUITexture
  726. 1.6.0
  727. - NEW: Added separated components to localize labels and sprites to remove the dependency with the NGUI localization
  728. - NEW: Support for localizing Audio Clips
  729. - NEW: Support for localizing GUIText
  730. - NEW: Support for localizing TextMesh
  731. 1.4.0
  732. - NEW: The filter on the Terms list can now have multiple values (e.g. "Tuto;Beg" will show only the terms containing "Tuto" or "Beg"
  733. - NEW: Added References to the UILocalize component to be able of store not only text but also objects
  734. - FIX: UILocalize will now show the Localization source it references
  735. 1.3.0
  736. - NEW: Languages can now be moved up and down to organize them
  737. - NEW: Allowed to filter by category on the Terms list
  738. - FIX: First language in the list becomes now the starting/default language
  739. 1.2.0
  740. - NEW: Merged Import and Export tabs to allow for external data sources that could be synchronized
  741. - NEW: Ability to categorize Terms to improve organization (e.g. Tutorial, Main, Game Screen, etc)
  742. - NEW: Each term category exports into a separated sheet when linking to Google Spreadsheets
  743. - NEW: Parsing scenes for changing the category on selected terms
  744. 1.0.2
  745. - FIX: Improved performance on the inspector by removing unneeded Layout functions
  746. - FIX: General Code Cleanup
  747. 1.0.1
  748. - NEW: Custom Editors now allow Undo the changes on the keys and startingLanguage
  749. - FIX: Removed testing Log calls
  750. 1.0.0 f2
  751. - FIX: Parsing scenes was executed several times in a row or not at all.
  752. - FIX: Importing CSV will now parse the current scene to show Key Usages
  753. - FIX: A message is shown when Selecting All No Localized labels in scene, if there are none
  754. - FIX: Clicking on the usage number of unused keys will not try to select them
  755. - FIX: Merging Keys will save scenes to avoid loosing changes
  756. - FIX: Sometimes exporting without saving made changes to be lost. Now it automatically saves data if needed.
  757. 1.0.0 f1
  758. - NEW: The language TextAsset will be shown in the Language list instead of just the name. That allows finding the asset, moving it to another folder, etc
  759. - NEW: Languages can now be also added by dragging a TextAsset into the Add Language bars.
  760. - NEW: Keys that are are missing the translation in any of the languages are highlighted in the Keys List by making them Italic and Darker
  761. - DEL: Removed button Update NGUI in the Key list. All data will be saved automatically when the inspector view changes to another object or the editor is closed
  762. - FIX: Filter for list of keys now is case insensitive.
  763. - FIX: Auto opening google Spreadsheet after export was opening two web pages.
  764. - FIX: Deleting a language will not only unlink the TextAsset from NGUI but will also delete the text file.
  765. - FIX: If a TextAsset is manually deleted, but NGUI still keeps a reference in the language list, that language is now skipped
  766. - FIX: Removed compile warnings when in WebPlayer platform
  767. - FIX: Removed exception when adding keys before creating a language
  768. - FIX: Adding multiple keys to NGUI was only adding the first one and returning an exception
  769. 1.0.0 b2
  770. - NEW: Added a TextField to filter the list of keys.
  771. - NEW: Option to auto open the Google Spreadsheet doc after exporting.
  772. - NEW: Added a centralized Error reporting.
  773. - NEW: Option to save or not the google password.
  774. - NEW: Added a menu option to quickly access the help. (Help\I2 Localization For NGUI).
  775. - NEW: Key list show a warning icon on the keys that are used in the scenes but are not in the NGUI files.
  776. - FIX: An error will show when contacting Google Translation on the WebPlayer Platform as its not yet supported.
  777. - FIX: Google public spreadsheet Key is now remembered when the editor opens.
  778. 1.0.0 b1
  779. - NEW: First Version including core features.