Skip to content

Automatic Eastern Arabic numerals in Arabic translations?H #583

@elisehein

Description

@elisehein

Hi!

I'm having trouble finding documentation for this on projectfluent.org.

Given a Fluent translation in Arabic, and passing in an integer for the score...

feedback-score = لقد حصلت على {$SCORE} أشكال صحيحة.

Is there a way to convert the score to an eastern arabic numeral? I'm expecting to see لقد حصلت على ١٠ أشكال صحيحة. instead of لقد حصلت على 10 أشكال صحيحة..

I'm using @fluent/react for this.

MVP (ignoring cardinality variants for brevity):

import { FluentBundle, FluentResource } from "@fluent/bundle";
import { ReactLocalization, LocalizationProvider } from "@fluent/react";

function getTranslationResources() {
  return {
    "ar": new FluentResource("feedback-score = لقد حصلت على {$SCORE} أشكال صحيحة."),
    "en-GB": new FluentResource("feedback-score = You got {$SCORE} shapes right.")
  };
}

const TRANSLATION_RESOURCES = getTranslationResources();

function *generateBundle(locale) {
  const bundle = new FluentBundle(locale);
  bundle.addResource(TRANSLATION_RESOURCES[locale]);
  yield bundle;
}

function l10n(locale) {
  return new ReactLocalization(generateBundle(locale));
}

function Component() {
  return (
    <LocalizationProvider
      l10n={l10n("ar")}>
      <Localized
        id="feedback-score"
        vars={{ SCORE: 12 }} />
    </LocalizationProvider>
  );
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions