Search Unity

I2 Localization ( The most complete Localization solution for Unity )

Discussion in 'Assets and Asset Store' started by Inter-Illusion, Feb 27, 2014.

  1. dev_dash

    dev_dash

    Joined:
    Jul 26, 2020
    Posts:
    15
    More question. How can I change or delete specific category name that already created?
    @Inter-Illusion,
     
    Last edited: Feb 22, 2023
  2. iLoveGamesDeveloper

    iLoveGamesDeveloper

    Joined:
    Aug 8, 2019
    Posts:
    14
    Hello!
    I have a question. I'm using LocalizedString to set the title/labels of prefabs that are instantiated at runtime, like Buttons, Tabs, and such. I set the .text of the text components when they are instantiated, however, when I change the translation, they are not modified. What is the best way to deal with this?
     
  3. unity_EE7C3E0634420E0CEC31

    unity_EE7C3E0634420E0CEC31

    Joined:
    Sep 30, 2022
    Posts:
    1
    Hi @Inter-Illusion , I'm having issues with displaying Arabic text with tags. For example, "كان <s>1</s>" gets displayed completely broken (<s>@@1[chinese char]@@ نﺎﻛ). Can you help me out?
     
  4. N8W1nD

    N8W1nD

    Joined:
    Sep 3, 2020
    Posts:
    9
    For the problem how to get an Audio clip by its key/term, for everyone in need of a solution like me and not wanting to invest 4h like I did..

    Code (CSharp):
    1. //Variable:
    2. private audioClip;
    3. private Localize localize;
    4.  
    5. //In Awake():
    6. localize = GetComponent<Localize>();
    7.  
    8. //In OnEnable():
    9. audioClip = LocalizationManager.GetTranslatedObjectByTermName<AudioClip>(localize.FinalTerm);
    @Inter-Illusion Please enter this snippet or some information about accessing audio to the Documentation in some form!

    This started as a reply to https://inter-illusion.com/forum/i2...translatedobject-audioclip-returns-null/reply on the I2 Forums, where answering was not possible for some reason. The complete answer is below.

    I had the same problem and found the issue:
    LocalizationManager.GetTranslatedObject<AudioClip>("EXAMPLE"); Expects an AssetName (the filename of the audio clip) as argument. GetTranslation gets this name (for some reason :D), thats why the solution below worked.

    The function, that does the intended is LocalizationManager.GetTranslatedObjectByTermName<AudioClip>(..);
     
    Inter-Illusion likes this.
  5. TomaszMolikRobot

    TomaszMolikRobot

    Joined:
    Jan 14, 2020
    Posts:
    25
    Hello,
    I was wondering if it is possible for I2Loc to search for I2Loc sheets on Shared Drives as well?
    Currently we have I2Loc sheets placed on someones My Drive and that works good.
    However we started using Shared Drives and wanted to move I2Loc sheets there but it looks like those are not found by I2Loc WebService.
    Is that possible to use sheets from Shared Drives?
     
  6. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    There are a couple of ways.
    First, you could search all keys that contain the category text (a key internally has this format "category\key", so looking for the category text will show all that belong to that category).
    Once you have them all listed, click the button to select all and the delete.

    Another easy way that may give you more options is to Export your localization to Google Spreadsheet or to a local CSV file.
    Then open that file and delete the rows that you don't need. That way, you could also do bulk text replacements, etc.
    After you are done, just import it back to unity and your localization will be updated.

    Hope that helps
     
  7. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    When you use a LocalizeComponent to translate a text, the component internally listens to the OnLocalize event.
    And when received, it re-translate the text.

    When using a LocalizeString to keep a text in your script translated. That object will know how to translate, but will not update until you query it again.
    In that case, your script should register to listen for the OnLocalize event and update the text. Something along this lines:
    Code (csharp):
    1.  
    2. public class MyClass : MonoBehaviour
    3. {
    4.     public LocalizedString Title;
    5.    
    6.     public TextMeshProUGUI TitleText;
    7.    
    8.     public void OnEnabled()
    9.     {
    10.         LocalizationManager.OnLocalizeEvent += OnLocalize;
    11.         OnLocalize();
    12.     }
    13.    
    14.     public void OnDisable()
    15.     {
    16.         LocalizationManager.OnLocalizeEvent -= OnLocalize;
    17.     }
    18.    
    19.     void OnLocalize()
    20.     {
    21.         TitleText.text = Title;   // Title will return the localization to the current language
    22.     }
    23. }
    24.  
     
  8. nindim

    nindim

    Joined:
    Jan 22, 2013
    Posts:
    130
    Hi @Inter-Illusion,

    I have fixed the issues with Arabic and rich text tags locally, the attached modified files are based on the current latest v2.8.21.

    The tags should be be written left-to-right to work correctly with the provided code. In Google Sheets, the icons to control the cell text direction only appear after you make an edit to a cell that could be RTL. Once you have set the cell as LTR, you should be able to edit the tags more easily.

    upload_2023-4-2_15-3-12.png

    Please also see my previous post where I provided a fix for "Booting in a RTL language causes Adjust Alignment to Malfunction" but the fix has been applied to the wrong line.

    All the best,

    Niall


     

    Attached Files:

  9. atmuc

    atmuc

    Joined:
    Feb 28, 2011
    Posts:
    1,161
    @Inter-Illusion

    BaseSpecializationManager/GetCurrentSpecialization cannot build for Universal Windows Platform and New Input System. It uses "return (Input.touchSupported ? "Touch" : "PC");"

    Can you fix it?
     
  10. hermit_021

    hermit_021

    Joined:
    May 31, 2018
    Posts:
    6
    Hello I2 Localization Team,

    We are using the I2Localization asset for our game. We have done the entire setup. but I have been getting this type of error. We have right now working on these 4 languages (English (United States), Amharic, Oromo, and Somali). and This error comes when we click on the <b>Translate All</b> button.

    I think the error might be related to the "Oromo" language because it is not getting translated and if we remove that language everything works fine.

    We have attached the error screenshot.

    Our current setup is,
    Unity 2019.3.10f1
    I2Localization v2.8.21 f3

    Please let us know what we can do from here.
    Thanks,
     

    Attached Files:

  11. kayke

    kayke

    Joined:
    Oct 21, 2015
    Posts:
    42
    We are seeing an intermittent issue where a .LOC file is getting downloaded corrupted on device. It's only happening intermittently by a portion of our users. We can reproduce the error state if we replace our local LOC file with one of the malformed ones we get from a user.
    With the bad LOC, all GetTranslation calls from I2 just return null.

    Any ideas how to resolve/debug this further?

    This is a critical issue for us.

    Thank you!
     
    avataris-io likes this.
  12. kayke

    kayke

    Joined:
    Oct 21, 2015
    Posts:
    42
    We found out some more details on the issue.
    We had a period where the headers where deleted on the google sheet which was causing the sheet to fail on load.
    We were able to resolve that issue by reverting the sheet. But we are seeing a very odd issue where intermittently the sheet from several revisions ago (the broken) one is getting pulled.
    Any idea why the older version of the sheet would intermittently get pulled as latest during the live sync process?
     
    ritro_hype and ScottJustScott like this.
  13. DanarKayfi

    DanarKayfi

    Joined:
    Aug 27, 2012
    Posts:
    72
    Hello ^_^
    First of all thanks for the awesome tool!
    I have a small issue with Kurdish Language

    First issue was it was not triggering the RTL, fixed it by adding "ku" in LanguagesRTL in LocalizationManager script (would love if you fixed that in future updates)

    Second issue is that the word is not connected, its separated! (attached some screenshots) is there a way to fix that?
     

    Attached Files:

  14. Grazer2

    Grazer2

    Joined:
    Jun 20, 2011
    Posts:
    86
    Hello,

    Question: What is the best way to use parameters with a LocalizedString? I sometimes use a localized string with a term assigned in the inspector and then assign that to a label in code. Is there a way to set the parameters in code without a ParamsManager component on the label? I'm basically looking for the equivalent of "some string param {0}".format("value") but using the LocalizedString and the {[]}-syntax.

    Thanks.

    edit: Of course there's "string".Replace("this", "that"), but it would be kinda nice to have this somehow wrapped in the i2 workflow.
     
    Last edited: May 8, 2023
  15. BlueKyle

    BlueKyle

    Joined:
    May 9, 2014
    Posts:
    6
    Hello, @Inter-Illusion
    Thank you for the awesome plugin

    I have a question for you though, is it possible to use more than one spreadsheet for one project?
    And if it is possible, how do I change between that spreadsheet?
    FYI, spreadsheet A and spreadsheet B have same name tab and same key, but with different content for each language

    Thank you
     
  16. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Yes, there is a way to have different languages or even different term groups in separate spreadsheets.
    By default, the plugin uses the I2Languages asset, that connects to the spreadsheet.

    Its possible to create more LanguageSources and assign the different spreadsheets. That way each of them are synchronized separately and can download additional languages and/or terms.

    Here you can find some information about that:
    http://inter-illusion.com/assets/I2LocalizationManual/LanguageSources.html

    The easiest way to setup it, is by adding a LanguageSource component to one of your scenes and then adding there the terms and languages you want to have separately. When that scene is loaded and the object is activated, the source will synchronize with the spreadsheet that you link.
    That's the easiest way to add localization to downloadable scenes and mods.
     
  17. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    If you add a LocalizatinParamsManager component to the GameObject that has the script (or create a custom global params manager), the LocalizedString will call it to replace the parameters automatically and also handle plurals and such.

    Another alternative that applies the parameters once you get the translation is by calling
    LocalizationManager.ApplyLocalizationParams (ref translation, gameObject, true);

    That will modify the string in translation to use the parameters it needs by using the LocalizationParamsManagers components in the gameObject.

    Here you can find a bit more of info on how to set up the Params Managers:
    http://inter-illusion.com/assets/I2LocalizationManual/Parameters.html

    Hope that helps,
     
  18. ritro_hype

    ritro_hype

    Joined:
    Aug 31, 2020
    Posts:
    5
    I am very curious in answer to question kayke rose about i2 downloads the old version of the sheets instead of the fresh ones. We have seen some reports where some users got new localized strings in game as 'Copywriting' (that's how we mark they key that need proper translation to different languages) or jus empty while others got localization of those parts just fine.
     
  19. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    I can't publish google apps script. Maybe 2 step verifi on my account.
    How to do it then?
     
  20. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    3.1- Depending on your account type, you may get a warning from google saying:
    "This app isn't verified"
    In that case, click "Show advanced" and then "Go to Copy of I2GoogleWebServiceV5 (unsafe)"
    Then grant the webservice permisions (i.e. to create/modify spreadsheets files)

    --> There is no [Show advanced] button.
     
  21. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    Did fresh new start, from zero base, made new google service, verified,
    made 1 term from unity editor, then export merge, no problem.
    But right after this do import merge, then this error continuously generated.

    ---------
    ArgumentNullException: Array cannot be null.
    Parameter name: bytes
    System.Text.Encoding.GetString (System.Byte[] bytes) (at <0de99929796b4095b47389e59e446fbd>:0)
    I2.Loc.LocalizationEditor.CheckForConnection () (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:580)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at <5f5588e61bcc4b419b651997708c8945>:0)
     
  22. pavel_totolin

    pavel_totolin

    Joined:
    Jul 21, 2021
    Posts:
    1
    Initial data:
    Bundle with prefab that has i2loc component.
    Font is baked into bundle.

    Problem:
    Font is changed on client(since the bundle was built) so the TMPro uses atlas from bundle but get glyphs from client so the text is broken because of wrong tex-coords. OnLocalize do not work if the current language is the same as in bundle (there is a check on that in the code).

    Question:
    Could it be solved somehow ? Could we force localise it event if the languages are equal ?
     
  23. CritCrew

    CritCrew

    Joined:
    Mar 4, 2022
    Posts:
    6
    @Inter-Illusion Hey! Is there any plans (or workarounds) to support Android App name localization at the moment?
     
  24. pixelminer

    pixelminer

    Joined:
    Jul 24, 2011
    Posts:
    26
    Hi. Anyone else getting this error in 2022.3?
     
  25. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Are you using i2 Localization version 2.8.22 f2 or newer? Unity 2022.3.2 quietly changed the names of some internal resources and left asset publishers scrambling to update their assets to accommodate the changes. I think i2 Loc 2.8.22 f2 contains the update.
     
  26. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi,
    Yes, Unity changed some of their skin styles and that made the plugin show those warnings when rendering some of the inspectors.
    A fix for this was released on 2.8.22 f3 which is now available in the store.
     
    TonyLi likes this.
  27. pixelminer

    pixelminer

    Joined:
    Jul 24, 2011
    Posts:
    26
    Awesome! The problem is indeed gone in 2.8.22 f3. Thank you for the prompt response!
     
  28. Grazer2

    Grazer2

    Joined:
    Jun 20, 2011
    Posts:
    86
    Hello. Since enabling the auto-update feature in i2 Loca we experience the following exception for a lot of users both on iOS and on Android:

    NullReferenceException: Object reference not set to an instance of an object.
    I2.Loc.LocalizationManager.ApplyLocalizationParams (System.String& translation, I2.Loc.LocalizationManager+_GetParam getParam, System.Boolean allowLocalizedParameters) (at <00000000000000000000000000000000>:0)

    We are currently using i2 v2.8.20 f2. Is this a known issue and would an update solve it?

    Thanks and regards.
     
  29. mbast

    mbast

    Joined:
    Dec 19, 2018
    Posts:
    17
    Hello @Inter-Illusion, just got the extension and I'm really liking it. But there's one feature I can't seem to find, I want to get a string with the params filled to pass to a function, but the only examples you have in the documentation involve using a LocalizationParamsManager component, in my case, I just want the string and I don't want to change a localized text component.

    Ex:
    In a static class that opens a dialog box, the dialog text won't always show a localized text.
    In this static class, there's a method that replaces a generic text component with the text you pass as a parameter.
    With LeanLocalization (the library I'm replacing) I can just do it like this:
    Code (CSharp):
    1. LeanLocalization.SetToken("token:name", "Swiftness");
    2.  
    3. string dialogMessage = LeanLocalization.GetTranslationText("text:skills:upgrade");
    4. // Learn {token:name} bla bla bla....? -> // Learn Swiftness bla bla bla....?
    5.  
    6. DialogManager.Instance.Show(dialogMessage)
    Is there a way to do something like this with this library? Or do I need to write a parser for this use case?

    [EDIT]:
    By inspecting the code, I found a way to achieve this, not sure if it's the best way, but it works:

    Code (CSharp):
    1. string upgradeString = LocalizationManager.GetTranslation("text:string:upgrade");
    2. LocalizationManager.ApplyLocalizationParams(
    3.     ref upgradeString,
    4.     new Dictionary<string, object> {
    5.         { "token:name",  "Swiftness" }
    6.     }
    7. );
     
    Last edited: Aug 22, 2023
  30. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi,
    Since v2.8.20 f2 there have been 5 updates, I'm not exactly sure if that version you mentioned has that issue as a known problem as it was a long while ago.
    But I strongly advise you to update to the latest I2 Localization. The update from 2.8.20 f2 to 2.8.22 f3 should be quite simple as it has been mostly bug fixes and perf improvements, so no major changes that would require changing your code or the asset structure.
     
  31. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Yes, the way you are getting the translation is a valid way of doing it.

    You can also use LocalizedString to get localization directly in your scripts and be able to set up the term in the inspector
    http://inter-illusion.com/assets/I2LocalizationManual/LocalizedStrings.html

    But it gets a bit trickier when using localized parameters as you have to set the params in a global Param manager.

    Using GetTranslation and ApplyLocalizationParams may be the simplest way to get the translation with params.
     
    mbast likes this.
  32. mbast

    mbast

    Joined:
    Dec 19, 2018
    Posts:
    17
    Thank you for the reply.
    Nice, I'm already using it alongside the Google Sheets integration. No more typos, and everything autocompletes. The asset is worth every penny.
     
    Inter-Illusion likes this.
  33. Grazer2

    Grazer2

    Joined:
    Jun 20, 2011
    Posts:
    86
    Thx!
     
  34. AlexNanomonx

    AlexNanomonx

    Joined:
    Jan 4, 2017
    Posts:
    41
    @Inter-Illusion I just created a new Android build and noticed the localized app name is not working. I'm updating the plugin atm, so maybe that will fix things. I'm guessing that it might not, given that other people seem to have been mentioning the error. Is there any work around you know of? I can't seem to find you responding to other people asking the same question, but apologies if you've already answered this.
     
  35. AndrewRoto

    AndrewRoto

    Joined:
    Jul 7, 2021
    Posts:
    10
    Hi @Inter-Illusion We develop apps for museums that often will have the first screen be in two languages at once, see below. The same title needs to be present in english and spanish at the same time, but we'd like to keep both titles in one key. Is there a way to force a text object to always localize to a specific language regardless of the apps general language setting?


    https://imgur.com/5lvsPl1
     
  36. AlexNanomonx

    AlexNanomonx

    Joined:
    Jan 4, 2017
    Posts:
    41
    This seems to be fixed in the latest version of the plugin. Thanks for the hard work on it.
     
  37. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    I met error...
    I made google spreadsheet and
    When I click [Import Merge] button, this error continuously generated forever.

    ArgumentNullException: Array cannot be null.
    Parameter name: bytes
    System.Text.Encoding.GetString (System.Byte[] bytes) (at <c4a10e89722742a4b5cd750857e291eb>:0)
    I2.Loc.LocalizationEditor.CheckForConnection () (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:580)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at <8059afc4969f4faea44ce7e8d8dd149e>:0)

    i2 version is 2.8.21.f3
     
    Last edited: Aug 26, 2023
  38. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    above error seems not happen at newest version (2.8.22.f3).
    But still have problem.

    Even after click [import merge] or [import replace] button, local i2 language source file in resource folder unity editor's translation text does not change to google spreadsheet's text. Why?

    And if I click [Refresh] button, following error occurs.

    Unable to access google
    UnityEngine.Debug:LogError (object)
    I2.Loc.LocalizationEditor:ShowMessage (string,UnityEditor.MessageType,bool) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs:242)
    I2.Loc.LocalizationEditor:ShowError (string,bool) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs:227)
    I2.Loc.LocalizationEditor:Google_OnFindSpreadsheets (string,string) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:701)
    I2.Loc.LocalizationEditor:CheckForConnection () (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:592)
    UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
     
  39. m-orchestrate

    m-orchestrate

    Joined:
    Oct 10, 2019
    Posts:
    2
    One of my suggestions is to add a feature that uses Chatgpt for translation, which is more accurate than Google Translate
     
  40. sonmet99

    sonmet99

    Joined:
    May 28, 2021
    Posts:
    1
    [Question] Is there a cost associated with Google Sheets with I2 Localization assets?

    Hello! @Inter-Illusion I have a question regarding the use of Google Sheets with I2 Localization assets in the context of creating a commercial app that supports multiplayer functionality. Is there any potential cost associated with using Google Sheets for localization when developing such an app, as imposed by Google?

    Thanks
     
  41. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    Anyone has trouble with [import merge] button? Even if click it, no error message while processing, but unity's language asset's text content does not sync with online google sheet.
    version newest (2.8.22.f3).
     
  42. JariHuomo

    JariHuomo

    Joined:
    Feb 8, 2013
    Posts:
    48
    I'm having a strange issue with Unity 2022 and the latest I2. When I switch to UWP, the I2 Localize target no longer displays TextMeshPro UGUI as a Target option. However, if I switch back to iOS, it shows up again.
     
  43. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
  44. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    Have you checked my question above please?
    ---------------
    Anyone has trouble with [import merge] button? Even if click it, no error message while processing, but unity's language asset's text content does not sync with online google sheet.
    version newest (2.8.22.f3).
     
  45. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    I have been trying for a while to reproduce that issue, but in every test project I have tried, the Import button seems to be working fine.
    A few things to try:

    - Double-check that the spreadsheet URL is a valid one and that the Verify button succeeds in contacting Google.
    If the Verify fails, it may mean that your WebService was stopped.
    To fix that Open the webService in your google drive and deploy it again. Then click Verify in Unity and check that it can connect.

    - To rule out permissions, even if the Import fails, try Check if you can export data into Google Spreadsheet. Make any change in your language source and export it to the spreadsheet. If exporting doesn't work, it could mean that the WebService permissions are not set right. Follow the instructions on the WebService page to allow access to the data.

    - Verify that the Spreadsheet name starts with "I2Loc" and that the password you are setting in Unity matches the one in the WebService page.
     
  46. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    I started you a conversation for sending video file of my error recorded. Please see it and reply. Thanks.
     
  47. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    [Export-Merge] button is working, but [Refresh] button also does not work, error says,
    --------
    Unable to access google
    UnityEngine.Debug:LogError (object)
    I2.Loc.LocalizationEditor:ShowMessage (string,UnityEditor.MessageType,bool) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs:242)
    I2.Loc.LocalizationEditor:ShowError (string,bool) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs:227)
    I2.Loc.LocalizationEditor:Google_OnFindSpreadsheets (string,string) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:701)
    I2.Loc.LocalizationEditor:CheckForConnection () (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:592)
    UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
    -------

    And I don't remember password, so left it as blank.
     
  48. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    I started from the first step, [Install] button again just before, and then Run Button at webpage with setting change to [doGet], then I see this error.

    And also tried [Publish] - [Deploy as web app] - and then click authorize also result in this error pop up message.

    i2loc-error-run-doget.JPG
     
  49. devilhunterxl

    devilhunterxl

    Joined:
    Dec 19, 2018
    Posts:
    14
    Can I2 Localization handle different system of units?
    Let's say convert units to any other system (for example, metric or imperial) under the hood?
     
  50. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,476
    Am I the only one who experiencing that Google App block erorr? It seems google blocks 3rd party app install regardless of my intent, and google don't provide bypass option. So what now?