For i18n, you've got several solutions of increasing complexity.
First, store a language specific template in a properties file. E.g.
messages.en may store the property. This works for short and simple text.
pagination.text = [X] of [Y]
messages.zh may store
pagination.text = [X of Y]
Second, at least in the Java world, changing a property file change means a new deployment. String attributes can also be internationalized in the database.
Suppose you had an Products mapped directly to a product table. Let's say we have the following API to support internationalizing the name of a product.
def id: Long
def name(language: Language): String
// e.g. 'en' for English, 'zh' for Chinese
def isocode: String
def name: String
// ordered list of isodcode s.t. if the internationalized attribute
// does not exist for this language, it tries each language in this list in order.
def fallbackLanguage: List[String]
// default language for entire system. Use this language if all else fails
def isDefault: Boolean
The name attribute on product table would need a one-to-many table joined with the language table.
It usually helps to provide an admin interface so that business users can make changes
to these core entities on their own.
Next, you may need to add currency, country and region (e.g. California, Wuhan Province), as first class object just as much as language, so that your system can localize to the particular business rules that apply to a specific region. To continue with my product example, the prices in China won't be the same as in the US, simply because the currency differs. Chinese customers may be expected to pay only in renminbi. And US customers pay only in US dollars.
Lastly, a reason that the same overarching functionality may need to be a separate system is that the business rules in different countries differ. Taxes in the US are not the same as taxes in China. The product catalog can differ because of differing marketing emphases. So It may make sense for your client's China team to have ownership over their own site, as opposed to your client's English-speaking team in an English-speaking country.