To let users translate your module strings, you must use the t() function. This allows the Drupal community to create translation files *.po. But this also allows user to tweak some strings to fit their needs, with the String Overrides module.
So everytime your write a sentence or a word in your module, surround your string with the t() function.
This is the bad way:
This is the good way:
Note that you must always write your module strings in English as this is the default language in Drupal and is used as a base to provide the localization system.
You will need to insert values in your strings:
Don't write:
$foo = t("You just won $points points");
This is the good way to insert placeholders values:
$foo = t("You just won !points points", array('!points' => $points));
Check out the resources links to learn more about t() function use.
Note that starting with Drupal 6, you can also make your JavaScript files translatable.
In your code use Drupal.t() function. Example: