fix: improve Arabic localization and English typo fix#3
Open
Andrew-A-A wants to merge 17 commits into
Open
Conversation
Modify Shared/Resources/Localizations.resx: change the Action.MoveDown value from "Mode down" to "Move down". This updates the localization string for the MoveDown action.
"مستأجر" (lit. renter/lessee) is an incorrect contextual translation for "Tenant" in a business/SaaS setting. "منشأة" (organization/establishment) is the accurate domain term used across the app to describe a client entity. Affected keys: Enum.UserType.TenantAdministrator, Enum.Feature.Tenants, Enum.ReportParameterType.TenantId, App.SelectTenant, Login.TenantHelp, Login.TenantReadError, RegulationShare.ConsumerTenant/ProviderTenant/ MissingTenants/MissingShares, Tenant.Tenant/Tenants/NotAvailable/UserTenant, Division.CalendarHelp/CultureHelp
Several keys retained the English word "Payroll" without translation. "كشف الرواتب" (payroll register/sheet) is the correct Arabic business term. Affected keys: Enum.Feature.PayrollLayers/Payrolls, Enum.FunctionType.Payroll, Enum.ReportParameterType.PayrollId, App.SelectPayroll/SelectPayrollWithPayrun, PayrollLayer.InvalidPayrollRegulation/PayrollLayer/PayrollLayers, Payroll.NotAvailable/Payroll/Payrolls
…r WageType "نوع الأجر" (type of wage) is a literal translation. "بند الأجر" (wage item/ line) is the correct payroll domain term used by Arabic-speaking HR professionals to denote a specific earnings/deduction component in a payroll structure. Affected keys: Enum.ResultKind.WageType/WageTypeCustom, Enum.FunctionType.WageType/ WageTypeResult/WageTypeValue/PayrunWageTypeAvailable, Enum.MarkerType.WageType, Payroll.WageTypePeriod/WageTypeRetro, Payrun.WageTypeAvailableExpression, WageType.WageType/WageTypeNumber/WageTypes, WageType.CalendarHelp
…term for Payrun "تشغيل الرواتب" (running/executing payroll) describes an action, not the concept. "دورة الرواتب" (payroll cycle/run) is the correct domain term for a payrun in Arabic HR and payroll systems. Affected keys: Enum.ResultKind.Payrun, Enum.Feature.PayrunJobs/PayrunResults/ Payruns, Enum.FunctionType.Payrun* (8 keys), Enum.ReportParameterType.PayrunId, Enum.WebhookAction.Payrun* (3 keys), Enum.MarkerType.PayrunResult, App.SelectPayrun/SelectPayrollWithPayrun, Forecast.JobNotSupported/PayrunJob/ StartForecastPayrun, Payrun.Payrun/Payruns/NotAvailable/UnknownPayrun, PayrunJob.* (8 keys), PayrunParameter.NotAvailable/PayrunParameter/PayrunParameters, PayrunResult.NotAvailable/PayrunResult/PayrunResults
Diacritics (tashkeel) on "المُجمِّع" are unnecessary in UI text and inconsistent with the rest of the localization file. The undiacritized form "المجمع" is the standard usage in formal Arabic software interfaces. Affected keys: Enum.ResultKind.Collector/CollectorCustom, Enum.FunctionType. Collector/CollectorApply/CollectorEnd/CollectorStart, Enum.MarkerType.Collector, Collector.Collector/Collectors, Payroll.CollectorRetro, WageType.CollectorGroups
"تعبير" (expression) is a generic word. "معادلة" (formula/equation) better conveys the computational/scripting nature of these fields in the payroll rule engine and is the established Arabic term in business software for formula fields. Affected keys: Case.AvailableExpression/BuildExpression/ValidateExpression, CaseRelation.BuildExpression/ValidateExpression, Collector.ApplyExpression/ EndExpression/StartExpression, Item.CSharpExpression, Payrun.EmployeeAvailable/ EmployeeEnd/EmployeeStart/End/Start/WageTypeAvailableExpression, Payrun.Expressions, Report.BuildExpression/EndExpression/StartExpression, WageType.ResultExpression/ValueExpression
…nctionCount format
"Script" was left untranslated in several keys. "نص برمجي" (scripted/
programmatic text) is the correct Arabic term. Also improved the function
count label from "{count} دالة" to the clearer "الدوال: {count}" format
used consistently throughout the localization.
Affected keys: Case.AvailableScript/BuildScript/ValidateScript,
Script.Script/Scripts, Script.FunctionCount
"Lookup" was left as-is in English across multiple keys. The established Arabic equivalent for a lookup/reference table in business software is "قائمة مرجعية" (reference list), and individual entries are "قيمة مرجعية" (reference value). Affected keys: Enum.MarkerType.LookupValue, CaseField.LookupSettings/ LookupSettingsRemoved, Lookup.Lookup/LookupName/Lookups, LookupValue.LookupValue/LookupValues
"فتحة" (opening/hole) is an inaccurate and unnatural translation for "slot" in a data-entry context. "خانة" (cell/field/box) is the correct Arabic word for a named slot or sub-field used in forms and case structures. Affected keys: Case.Slots, CaseRelation.SourceCaseSlot/TargetCaseSlot, CaseSlot.CaseSlot/CaseSlots/Localizations/NotAvailable
"Cluster" and "Clusters" were left untranslated. "عناقيد" (clusters, singular: عنقود) is used for the display label (Shared.Clusters), while "تكتلات" is used in ClusterSet contexts to reflect grouped/nested cluster sets, matching common Arabic technical usage. Affected keys: ClusterSet.ClusterSet/ClusterSets/NotAvailable/ ExcludeClusters/IncludeClusters, Shared.Clusters
… Parameter "معلمة" (informant/informative) is a literal but awkward translation. "معامل" (parameter/factor) is the established Arabic computing and mathematical term for a function or report parameter. Affected keys: Action.Parameters, Payrun.Parameters, PayrunParameter. CountParameters/NoParameters/NotAvailable/PayrunParameter/PayrunParameters, ReportParameter.ParameterType/ReportParameter/ReportParameters
"الثقافة" (culture/civilization) is a false-friend translation that sounds unnatural in a software locale context. "التنسيق الإقليمي" (regional format/ locale) is the standard Arabic UI term used by major software vendors (Microsoft, SAP) for culture/locale settings. Affected keys: Shared.Culture, Division.CultureHelp, Employee.CultureHelp, Tenant.CultureHelp, Report.TemplateNotAvailable
…l "التوقعات" "التوقعات" (forecasts, plural) was incorrectly used where the concept refers to a single forecast run. "التوقع" (the forecast, singular) is grammatically correct when referring to one forecast payrun. "لا توجد توقعات متاحة" retains the plural as it describes the absence of multiple items (correct usage). Affected keys: Enum.PayrunJobStatus.Forecast, Forecast.Copy/CopyQuery/ CopyToForecast/Forecast/JobName/JobNotSupported/JobPeriod/JobDate/Name/ PayrunJob/StartForecastPayrun, Case.SubmitForecastCase
…d.Text key typo Several values were still in English. Translations applied: - Boolean → قيمة منطقية (logical value) - Boolean رقمي → قيمة منطقية رقمية (numeric logical value) - مورد ويب → رابط ويب (web link, more accurate for a URL resource) - Namespace → المجال (domain/namespace) - Schema → مخطط (schema/diagram) - Id → رقم تعريفي (identifier) - Tags → العلامات (tags/labels) Also fixed a key name typo: "Shared,Text" (comma) → "Shared.Text" (period), which would have caused the key to be unresolvable at runtime. Affected keys: Enum.AttributeValueType.Boolean, Enum.ValueType.Boolean/ NumericBoolean/WebResource, Regulation.Namespace, ReportTemplate.Schema, Shared.ObjectId, Shared.Tags, Shared.Text (key fix)
…iple keys
Corrected several values that were grammatically awkward, imprecise, or
inconsistent with standard Arabic UI conventions:
- التقاويم → التقويمات (correct broken plural for "calendars")
- حالات الموظف → حالات الموظفين (correct plural genitive for "employee cases")
- ملخص → مجموع (Summary in aggregation context means total, not abstract summary)
- لحظة → نقطة زمنية (Moment as a time type is more precisely "time point")
- بلا وقت → غير محدد بمدة (Timeless = not time-bound, clearer phrasing)
- الخادم الخلفي → الخادم (Backend version label simplified; "backend" implied)
- الوضع الفاتح → الوضع الساطع (Light mode: فاتح=pale, ساطع=bright, more accurate)
- Source/Target case names simplified to remove redundant "الحالة" in labels
- حقل الحالة المصدر/الهدف → حقل الحالة (المصدر)/(الهدف) for visual clarity
- SourceEqualsTargetError message reworded to natural Arabic
- Employee.SelectedEmployees format: {selected} من {total} موظف →
الموظفون: {selected} من أصل {total} (consistent with other count labels)
- Item.AddHelp/CreateHelp/NotAvailable rephrased for natural sentence structure
- Login.PasswordInfo: clarified "حرف لاتيني" (Latin character) since Arabic
speakers may confuse "حرف صغير/كبير" with Arabic letter case
- قسم المستهلك → قسم المستفيد (consumer → beneficiary, correct domain term)
- Calendar.PeriodCycleHelp rephrased for clarity
Added a parenthetical hint to Enum.ValueType.Boolean to make it immediately clear to Arabic-speaking users that this type represents a yes/no value, reducing ambiguity between Boolean and numeric types in the UI.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix: localization corrections — Arabic audit and English typo fix
Description
This PR includes two localization fixes across the base and Arabic resource files.
1. English base (
Localizations.resx) — typo fixCorrected a typo in
Action.MoveDown:"Mode down"→"Move down". Theincorrect value was propagated to all language files that inherit the base string.
2. Arabic (
Localizations.ar.resx) — full audit and terminology standardizationA full review and correction of the Arabic localization file, covering ~160 keys
across three categories:
Terminology standardization — replaced incorrect or inconsistent terms with
their established Arabic equivalents used by Arabic-speaking HR/payroll professionals:
Untranslated English terms — translated values still in English:
Boolean,Payrolls,Namespace,Schema,Tags,Id,Clusters,Scripts.Arabic phrasing and accuracy fixes — corrected broken plurals, genitive
agreement, diacritics (المُجمِّع → المجمع), Forecast singular/plural misuse,
natural-sounding UI strings, and a key name typo
Shared,Text→Shared.Textthat caused a runtime lookup failure.
Fixes # (issue)
Type of change