projectfluent / fluent

Fluent — planning, spec and documentation
https://projectfluent.org
Apache License 2.0
1.4k stars 45 forks source link

Resource namespace #333

Open thetutlage opened 3 years ago

thetutlage commented 3 years ago

This is more of a question to understand how to structure fluent files in a real life project.

Assuming, one resource is basically the contents of a single file (on disk), is there any way to have a namespace for resources. For example: I have the following two files.

messages.ftl
validations.ftl

Now both the files exports a variable called message

// messages.ftl

message = "Hello {$name}"
// validations.ftl

message = "Hi {$name}"

I create a resource for both the files.

let res = new FluentResource(readSync('./messages.ftl'));
let res2 = new FluentResource(readSync('./validations.ftl'));

bundle.addResource(res);
bundle.addResource(res2);

Now, how do I get the message from the resource created via validations.ftl?

thetutlage commented 3 years ago

If there was a namespace feature, then things would have been easier. For example:

bundle.addResource('message', res)
bundle.addResource('validations', res2)

Then I can basically prefix the namespace as follows.

bundle.getMessage('messages.message')
bundle.getMessage('validations.message')