Skip to content

Pass variables from app, to a fluent selector #351

@emagnier

Description

@emagnier

I originally opened this issue on the fluent.js repo, but since I still haven't had any answers after a few months, and because it seems a Fluent syntax issue (rather than a JavaScript issue), I'm reposting it here.


I'm trying to pass a variable ($week) from my application, to a selector as an argument.

week-nb = Number: { $week }
week-name = {-ordinal(num: $week, gender: "feminine") } semaine

-ordinal = { $num ->
  [1] { $gender ->
      *[default]  premier
       [feminine] première
  }
  [2] deuxième
  [3] troisième
  *[other] { $num }
}

The week-nb identifier work well, it returns Number: 1 as expected.
But week-name returns nothing, instead of "première semaine".

// From the JS code

const weekNumber = bundle.getMessage("week-nb");
if (weekNumber.value) {
  const weekNb = bundle.formatPattern(weekNumber.value, {
    week: 1,
  });
  console.log(weekNb); // Outputs: Number: 1
}

const weekNameMessage = bundle.getMessage("week-name");
if (weekNameMessage.value) {
  const weekName = bundle.formatPattern(weekNameMessage.value, {
    week: 1,
  });
  console.log(weekName); // Do not outputs anything
}

Am I missing something? Is there any limitations?
I would like to keep my -ordinal selector separated (to stay DRY), because it is required at several places in my locale file.

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