Каркас и приложение - единое целое. Делая приложение, вы "продолжаете" и "развиваете" каркас.

Конкретно: делаете App/Rsrc/Fr/Strings.odc и помещаете туда ресурсы для французского языка. Затем переключаете ББ на французский - и вуаля, ваше приложение получает строки из этого документа.

Как оно их получает: через строки, начинающиеся с #App:. Например, в форме в метку вы пишете не "Hello", а "#App:Hello". Тогда каркас подгрузит из строкового документа текущего языка (App/Rsrc/Fr/Strings.odc) отображение и поместит его в метку. Если вы там напишете Hello<tab>Bonjour, то будет на вашей метке бонжур. То же касается и меню: в App/Rsrc/Menus можно использовать языкозависимые строки, см. примеры в System/Rsrc/Menus. Если вам нужно в тексте программы использовать языкозависимую строку, воспользуйтесь Dialog.MapString:## Код:
```
Dialog.MapString("#App:Cogito ergo sum", str); Log.String(str); (* в журнале: Я мыслю, следовательно, я существую - при включенном русском, или Je pense, donc je suis - при включенном французском *)
```
Для переключения языков такую программу перекомпилировать не нужно.

(Про то, что каркас и приложение - единое целое: все сервисы каркаса, где поддерживаются языкозависимые строки, опираются на Dialog.MapString; как и ваше будущее приложение)

П.С. А где-то у Ивана Андреевича имелось видео про эти языковые дела...