Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Formal vs informal language #300

Open
jtynkkynen opened this issue Oct 14, 2019 · 12 comments
Open

Formal vs informal language #300

jtynkkynen opened this issue Oct 14, 2019 · 12 comments

Comments

@jtynkkynen
Copy link

Is there a way to handle politeness or formality of language, like formal and informal? This is very typical feature in languages like Japanese and Korean.

@alerque
Copy link
Contributor

alerque commented Oct 14, 2019

You could handle this with attributes similar to some of the gender examples floating around. Is there some usage that would not be covered by attributes?

@jtynkkynen
Copy link
Author

Thanks. I was thinking I could do that. I believe it covers all that is needed.

@alerque
Copy link
Contributor

alerque commented Oct 16, 2019

@jtynkkynen Do you happen to know if the Unicode CLDR data includes information about what languages have formal/informal variants for what pars of speech?

@jtynkkynen
Copy link
Author

@alerque I don't think they have that. I do not know other languages than Korean and Japanese that have honorifics to the level of verb endings, but Tamil and Thai at least have some kind of honorifics.

@gandaro
Copy link

gandaro commented Nov 11, 2019

@jtynkkynen Do you have an example for a use case where you would want the translator to be able to provide both formal and informal versions?

In software translations to German, we usually decide on the tone we want to use at the beginning and use that consistently.

@jtynkkynen
Copy link
Author

@gandaro If you have an app that greets the user, it might need to be in different levels of honorifics for an older user and a younger user. Also software that sends emails or messages to users might need to send them in different levels of speech.

@Pike
Copy link
Contributor

Pike commented Nov 13, 2019

One way to potentially hook this up is to add a TONE() function at the Localization class level, which you prime with metadata it needs to decide which tone to use for which language. I'd expect that function to return different values for different languages, and with cross-language fallback in Fluent, you might end up in a situation where that matters.

This is obviously delicate to implement on the top-level stack, as you can't re-use bindings between users, for example.

Also, the nature of this function is to return seemingly unbound values, so this is going to also challenge the product cycle on the localization tool side. And if your implementation wants to be as strictly typed as possible, this might be a blocker.

@rugk
Copy link

rugk commented Jan 27, 2020

Do you have an example for a use case where you would want the translator to be able to provide both formal and informal versions?

Actually, I know many software projects that are translated to German that offer both "German (du)" and "German (Sie)", i.e. a formal and informal version to users to select. The best example/one good one may be Nextcloud.

@zbraniecki
Copy link
Collaborator

As Axel suggested, in Fluent, this could be:

key = { TONE() ->
        [formal] ...
       *[informal] ...
    }

@jtynkkynen
Copy link
Author

Yes, this could even handle the honorifics levels of Korean and Japanese which are a bit more complex than formal and informal.

@tukusejssirs
Copy link

Just to note: even Slovak, Czech, Hungarian, Italian, Spanish (and probably even Polish) distinguish between formal and informal communication to another person (singular you).

Some languages change only the pronoun (you), others change even the verb suffix.

@rkh
Copy link

rkh commented Mar 31, 2021

FWIW, I am working on a Ruby implementation at the moment, and decided to go with the the custom function:

hello =
  Hallo {$name}! Wie geht es {TONE() ->
    [informal] dir
   *[formal] Ihnen
  }?

Accepted values are formal, informal and avoid (in German and probably other languages it is often possible to phrase sentences in a way that avoid addressing the user directly.)

I've also added a private locale extension (de-DE-x-informal) to select the tone. This should cover languages like German, Slovak, Czech, Hungarian, Italian, Spanish, etc just fine, but wouldn't extend to the more complex situation in Korean and Japanese. Though I'm not sure whether those extend beyond the honorific used to address a person.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants