Laravel Gendered Nouns Localisation

Viewed 65

I've been implementing localisation in a Laravel project and I've had some concerns that I want to address early so I don't have to go back.

I understand some languages have gendered nouns like Spanish and French. German introduces a third gender of "neuter".

Currently the way I've been implementing gendered translations is like this:

// English
'nameLogo' => ':name Logo|:name Logo'

// Spanish
'nameLogo' => 'Logo del :name|Logo de la :name'

Given German will have a third case for some strings, how do I handle this for languages that have less? Or a simpler question, do I have to add 2+ cases for each string in English or is the one enough and this gets handled by Laravel?

1 Answers

You can use Laravel's pluralization syntax like this:

// 0: Male, 1: Female
// fallback to gender-neutral

// English (gender neutral)
'nameLogo' => ':name Logo'

// Language (male, female, gender neutral)
'nameLogo' => '{0}Logo del :name|{1}Logo de la :name|Logo = :name'

// Other language (only male and gender neutral?)
'nameLogo' => '{0}Logo del :name|Logo = :name'

// yet another language (female and gender neutral?)
'nameLogo' => '{1}Logo de la :name|Logo = :name'

Then, specify 0 for male, 1 for female, and any other number for gender-neutral.

Related