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?
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.