Unified scripting for English and Arabic in mobile automation and multiple platform ios and Android

How to design same script for different language like English and Arabic and different platform like ios and android for mobile automation. How to design same script for different language like English and Arabic and different platform like ios and android for mobile automation. Can it be managed with Object Repository to capture elements

Object repository should work in this case but am not sure. Give it try

With Object repository do we have to maintain 4 different combinations in object repo [iOS-ENG, iOS-Arabic, Android- ENG, Android- Arabic] . Can we tweak this repo’s to multiple workflow as the business workflow remains same

:white_check_mark: 1. Use Object Repository for Centralized Element Management

UiPath’s Object Repository (OR) is the key enabler for multi-language and multi-platform automation.

Approach:

Create separate application descriptors for each platform — one for Android and one for iOS.

Within each descriptor, define screen and element objects.

If element attributes (like text, automationId, resource-id, etc.) differ between Android and iOS, you can parameterize them.

Maintain the same logical name (e.g., btn_Login) across descriptors.
UiPath automatically maps the locator based on the active target app descriptor.

Example:

AppDescriptors/
Android_AppRepo/
btn_Login
txt_Username
iOS_AppRepo/
btn_Login
txt_Username

At runtime, the framework picks the correct locator based on the platform in use.

:white_check_mark: 2. Handle Multi-Language (English, Arabic, etc.) Using Config or Dictionary Mapping

When automating apps supporting multiple languages, text-based attributes like text, label, or name vary.

Best Practice:

Store multilingual text values in a config file (JSON/Excel/Dictionary).

Access them dynamically based on the selected language.

Example Config:

Key English Arabic
LoginButton Login تسجيل الدخول
UsernameField Username اسم المستخدم

UiPath Implementation:

currentLanguage = in_Config(“Language”).ToString
loginText = LanguageDict(“LoginButton”)(currentLanguage)

’ Use dynamic selector
“<android.widget.Button text='” + loginText + “’ />”

This makes your script language-independent — same automation logic, different UI texts.