blob: 7e932e54cf5ba75b7e8be265cc576c76a38dce3d [file] [log] [blame]
package org.checkerframework.checker.i18n;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.annotation.processing.SupportedOptions;
import org.checkerframework.checker.propkey.PropertyKeyChecker;
/**
* A type-checker that checks that only valid localizable keys are used when using localizing
* methods (e.g. {@link ResourceBundle#getString(String)}).
*
* <p>Currently, the checker supports two methods for localization checks:
*
* <ol>
* <li value="1">Properties files: A common method for localization using a properties file,
* mapping the localization keys to localized messages. Programmers pass the property file
* location via {@code propfiles} option (e.g. {@code
* -Apropfiles=/path/to/messages.properties}), separating multiple files by a colon ":".
* <li value="2">{@link ResourceBundle}: The proper recommended mechanism for localization.
* Programmers pass the {@code baseName} name of the bundle via {@code bundlename} (e.g.
* {@code -Abundlename=MyResource}. The checker uses the resource associated with the default
* {@link Locale} in the compilation system.
* </ol>
*/
@SupportedOptions({"propfiles", "bundlenames"})
public class LocalizableKeyChecker extends PropertyKeyChecker {}