Ialways test my text and DB applications for international clients, not only international but when ever a user might be input text and locale might be a concern, which is almost always the case, with -Emulator
Get familiar with that emulator mainly because it really save your time on changing OS settings (non-Unicode and interface) and combine that with virtual keyboard or just use copied text from Google Translate using Chrome and FireFox, don't use Edge !
It boils down to the fact that 'THIS' just is not the upper case of 'This' on every locale. In case this is a requirement of the application, then ToUpper is not the right choice. Unfortunately ToUpperInvariant may not be either, although it will probably work for pure English text strings.
Since you are using ToUpper, uppercase of 'This' in Turkish locale is 'THİS' (upper case I letter with dot at top). Moreover, lower case for 'THIS' in Turkish locale is 'thıs' (small caps i letter without dot at top).
Android will run on many devices in many regions. To reach the most users,your application should handle text, audio files, numbers, currency, andgraphics in ways appropriate to the locales where your application will be used.
You should already have a working knowledge of Java and be familiar withAndroid resource loading, the declaration of user interface elements in XML,development considerations such as Activity lifecycle, and general principles ofinternationalization and localization.
Resources are text strings, layouts, sounds, graphics, and any other staticdata that your Android application needs. An application can include multiplesets of resources, each customized for a different device configuration. When auser runs the application, Android automatically selects and loads the resources that best match the device.
When you write your application, you create default and alternative resourcesfor your application to use. To create resources, you place files withinspecially named subdirectories of the project's res/ directory.
Whenever the application runs in a locale for which you have not providedlocale-specific text, Android will load the default strings fromres/values/strings.xml. If this default file is absent, or if it is missing a string that your application needs, then your application will not run and will show an error. The example below illustrates what can happen when the default text file is incomplete.
A large part of localizing an application is providing alternative text fordifferent languages. In some cases you will also provide alternative graphics,sounds, layouts, and other locale-specific resources.
An application can specify many res//directories, each with different qualifiers. To create an alternative resource fora different locale, you use a qualifier that specifies a language or a language-region combination. (The name of a resource directory must conform to the naming scheme described in ProvidingAlternative Resources,or else it will not compile.)
Suppose that your application's default language is English. Suppose alsothat you want to localize all the text in your application to French, and mostof the text in your application (everything except the application's title) toJapanese. In this case, you could create three alternative strings.xmlfiles, each stored in a locale-specific resource directory:
Notice that if the device is set to Japanese, Android will look fortitle in the res/values-ja/strings.xml file. Butbecause no such string is included in that file, Android will fall back to thedefault, and will load title in English from theres/values/strings.xml file.
If multiple resource files match a device's configuration, Android follows aset of rules in deciding which file to use. Among the qualifiers that can bespecified in a resource directory name, locale almost always takesprecedence.
If the application runs on a device that is configured to use Japanese,Android will load graphics from res/drawable-ja/, even if thedevice happens to be one that expects input from a stylus and has a QVGA low-density screen in landscape orientation.
Android will load text_a fromres/values-mcc404/strings.xml (in English), even if the device isconfigured for Hindi. That is because in the resource-selection process, Androidwill prefer an MCC match over a language match.
The selection process is not always as straightforward as these examplessuggest. Please read How Android Findsthe Best-matching Resource for a more nuanced description of theprocess. All the qualifiers are described and listed in order ofprecedence in Table 2 of ProvidingAlternative Resources.
You cannot assume anything about the device on which a user willrun your application. The device might have hardware that you were notanticipating, or it might be set to a locale that you did not plan for or that you cannot test. Design your application so that it will function normally or fail gracefully no matter what device it runs on.
If an application is missing even one default resource, it will not run on a device that is set to an unsupported locale. For example, the res/values/strings.xml default file might lack one string that the application needs: When the application runs in an unsupported locale and attempts to load res/values/strings.xml, the user will see an error message and a Force Close button. An IDE such as Eclipse will not highlight this kind of error, and you will not see the problem when you test the application on a device or emulator that is set to a supported locale.
If you need to rearrange your layout to fit a certain language (for exampleGerman with its long words), you can create an alternative layout for thatlanguage (for example res/layout-de/main.xml). However, doing thiscan make your application harder to maintain. It is better to create a singlelayout that is more flexible.
Another typical situation is a language that requires something different inits layout. For example, you might have a contact form that should include twoname fields when the application runs in Japanese, but three name fields whenthe application runs in some other language. You could handle this in either oftwo ways:
You probably do not need to create a locale-specificalternative for every resource in your application. For example, the layoutdefined in the res/layout/main.xml file might work in any locale,in which case there would be no need to create any alternative layout files.
To do this, you could create a small file calledres/values-en-rGB/strings.xml that includes only the strings thatshould be different when the application runs in the U.K. For all the rest ofthe strings, the application will fall back to the defaults and use what isdefined in res/values/strings.xml.
Keep in mind that the device you are testing may be significantly different from the devices available to consumers in other geographies. The locales available on your device may differ from those available on other devices. Also, the resolution and density of the device screen may differ, which could affect the display of strings and drawables in your UI.
A "custom" locale is a language/region combination that the Androidsystem image does not explicitly support. (For a list of supported locales inAndroid platforms see the Version Notes in the SDK tab). You can testhow your application will run in a custom locale by creating a custom locale inthe emulator. There are two ways to do this:
This will cause the emulator to restart. (It will look like a full reboot,but it is not.) Once the Home screen appears again, re-launch your application (forexample, click the Run icon in Eclipse), and the application will launch withthe new locale.
If the test is successful, repeat it for other types of configurations. For example, if the application has a layout file called res/layout-land/main.xml but does not contain a file called res/layout-port/main.xml, then set the emulator or device to portrait orientation and see if the application will run. Localization ChecklistsThese checklists summarize the process of localizing an Android application.Not everything on these lists will apply to every application.
for my 30 pc lab, I install the new aistarter
the following error keeps happening for different PC at different time, some time work after restart the PC some time not
20230314_16030719202560 416 KB
other detailed:
you can add design component such button and textBox but it will appear with no text or with weird text or number
The corrupted/missing text issue is something we are tracking, and we think it might be due to an unexpected interaction with the fonts or the locale of the host machine as it's not something we see when we test on our laptops with a fresh Windows install (we're also not sure why this should be, but it's not consistent enough to replicate).
This happens quite often for me with the app pictured below; for other apps, it doesn't seem to be a problem. Sometimes a hard reset works. I can switch to another project and the different project displays correctly, but switching back to the display-errored project will keep the same error state with even the same letters or parts of letters missing (see Screen1's text where the top of the n is cut off).
Do you have a specific recommendation? This is installed and used in a school lab setting. I've used BlueStacks and Andy personally in the past, but the limited scope of the MIT Emulator is preferable in the school setting.
Which version of Windows are you on? Our emulator is the last version published by Google that worked on Windows 7. If you are on a newer Windows version, you could try installing the latest emulator via Android Studio and copy the emulator directory from the Android Studio installation into the from-Android-sdk folder in the App Inventor installation directory and see if that fixes the problem on your system.
I'll link a 1min video in Google Drive showing a new error when I switched font faces. Usually, I don't mess with the font and just leave it at default, but when I switched the font; the emulator started glitching as seen in the video. It stopped when I switched all the font faces back to default; and it would start glitching again when I swapped a single font face and continued glitching until I switched it back. Around 46sec I got a runtime error; then went back to normal. Font Error in Emulator
3a8082e126