I'm working on a website that has content related to various locations, including cities, regions, and countries. I run into issues with how to structure sentences when including articles in different languages. For instance, I have strings like "There are {count} locations in {location}" and "Find locations near {location}".
With over 150,000 locations sourced from the GeoNames database, I know that names like 'Rome' translate to 'Roma' in Italian and 'United States' becomes 'Estados Unidos' in Spanish. Some locations, like 'United States', require an article, so I need to say "in the United States". Languages can complicate this further; for example, in Italian, 'in the' combines into 'negli', changing it to "negli Estati Uniti".
I'm fine with manually adding articles for some country names but can't do that for every city or region due to the sheer volume. I'm thinking of having separate strings for countries and other locations, like:
* For countries: "There are {count} locations {inLocation}" where {inLocation} could be "in the United States" or "negli Estati Uniti".
* For cities/regions: "There are {count} locations in {location}" where {location} is something like Rome or Roma.
Am I on the right track here? How have others dealt with this kind of internationalization problem without losing sentence structure for SEO purposes?
3 Answers
You might want to leverage some AI tools for translation patterns and validation checks by locale. Tools like Cognetivy could help streamline the workflow, allowing you to manage translations in a structured way more effectively.
You're definitely on the right track with needing different strings for countries and cities. I18n frameworks generally handle basic cases well, but yours seems a step further due to the dynamic nature of articles and gender. It might be easier to hardcode a few exceptions, especially since your dataset is manageable and finite.
In my app, I just go for a brute force method. Each location gets multiple keys for different contexts. For example, for the US, you might have:
```json
"us": {
"name": "United States of America",
"shorthand": "USA",
"in": "the United States",
"demonyms": {
"masc": {
"singular": "American",
"plural": "Americans"
},
"fem": {
"singular": "American",
"plural": "Americans"
}
}
}
```
It does create some duplication, but it's pretty robust. For unicorn cases in text, I often write them out manually too.

Related Questions
How to Build a Custom GPT Journalist That Posts Directly to WordPress
Cloudflare Origin SSL Certificate Setup Guide
How To Effectively Monetize A Site With Ads