You can hardcode the text in your source code using the following NSLOCTEXT(“MyGame”,“BeginGame”,“Start”) or you can define a class with a FText UProperty and set it’s value on an instance of the class through the editor.
You don’t need to edit any external files (ini, xml, etc…) when building your game in a localization friendly way. You will need to edit some json files once your project is closer to completion to add the actual translations.
As for whether to use Canvas or Textures… I would use Slate, but if you wish to not use Slate then I would use Canvas and only if that is not capable of doing what you want would I fallback to embedding text in Textures.