I'm not sure if I understand the difference. Is i18n the process of getting an app ready so that l10n for any location is possible? Or in other words, i18n would be making sure no UI strings are hard-coded (and thus suitable for only one language), while l10n would be providing the values for these UI strings (specific to whatever language the l10n was for)?