Use the UI Localization module. This way you can access the strings in C# and K#. Here are a few things to note:
- By default, Kentico uses the database first to retrieve resources, then any custom.resx file, then cms.resx
- Kentico has a cms.resx file in the /CMSResources directory, which can be modified, but not recommended
- If you enter a record using Site Manager>Development>UI Cultures with the same key as what is in the cms.resx file, the database value will override the .resx file
- If you enter
<add key="CMSUseSQLResourceManagerAsPrimary" value="false" />
in your web.config, SQL will be last in the order of retrieving your resources.
Short answer is I'd recommend using the database as it offers the most flexibility, access and easy to upgrade.