The Basic Rule
Unreal Engine 3 supports text localization with respective ini files for each language in the "Localization" folders. For binary data, localization is based on providing different versions of the same packages for each supported languages. Each language has its three letter code, and a package file for a certain language has to postfix its filename with the code. When the engine loads a package, it first looks for a path extended with the current language code. If not found, it falls back to the one with _INT postfix and then the intact path. For example, if the engine wants to load A.upk and are running Japanese, it will try A_JPN.upk , A_INT.upk, and A.upk in turn. You can use this rule for most of resources, but when it comes to cooking, things get more complicated.
Notes you should make the resources in localized packages corresponding to others. If you have a resource in a package for a certain language, you should have corresponding resources in other language's. This is because only one version for a given package name is loaded by the engine at the same time. So separating localized and non-localized resources into different packages is a good practice. Otherwise, you have to make sure the consistence of the same non-localized resources in different localized packages.