I2 Localization - Readme.txt 65 KB

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