Call translation service from a callback registered in an app.config section

I'm relatively new to AngularJS and the problem I'm facing is one of those "I want to inject a Service into an app.config" type of scenarios, which I realise cannot be done. (I'm comfortable with the different between Service and Provider, and why a Service cannot be injected into a .config.)

What I am trying to accomplish is to use angular-schema-form together with angular-translate such that field titles in generated forms are translated.

There is an issue where someone asks how to do this, and the advice given is to take advantage of angular-schema-form's postProcess, which is a property of the Provider. This callback gives you the form object before it is rendered, giving you the opportunity to manipulate it with user code. Therefore translation could be done within here.

The postProcess method is called on the Provider, so it is done within an app.config:

app.config(function(schemaFormProvider, $translateProvider) {
    schemaFormProvider.postProcess(function(form){
        // within here I can inspect the form object, find all
        // properties whose key is "title", and then perform
        // language translation on their values.

So, that is apparently the place where I have an opportunity to manipulate control titles and so on.

Over to the angular-translate library, for me to 'manually' translate strings, I can use the $translate service. This provides both synchronous and asynchronous methods to translate a given key string. The synchronous one is $translate.instant(key).

To glue these two together, what I have tried so far (which does work) is to create a 'bridge' method like this:

var app = angular.module('myApplicationName', ['schemaForm', 'pascalprecht.translate']);

....

app.config(function(schemaFormProvider, $translateProvider) {
    schemaFormProvider.postProcess(function(form){
        // ... code here which iterates over properties
        // and finds all control titles ...
            key = app.myTranslate(key);
        // ....
    }

....

});

app.myTranslate = function (key) {
    var service = angular.injector(['ng', 'myApplicationName']).get("$translate");
    return service.instant(key);
}

This does work, but it seems ugly and unsafe (as presumably there's no guarantee $translate is ready when the callback is first invoked) and the calls to angular.injector(['ng', 'myApplicationName']).get... are presumably expensive.

Is there a better way, or is this the only way I'm going to get it done, considering the constraints of the libraries I'm working with?

I have also considered an alternative approach altogether, which would be to instead perform the translations on the schema or form objects before they are processed by angular-schema-form. This could be done from within Controllers, eliminating the problem of accessing the $translate service. I may end up going down that route, but it would still be nice to understand the best solution for the above scenario.