There are other answers that show how to set a HTML title in AngularJS. This is my variation which works for basic cases even while using angular-translate:
<title ng-controller="PageCtrl" ng-bind-template="MyApp: {{title}}"></title>
and
angular.module('MyApp')
    .controller('PageCtrl', function($rootScope, $translate) {
        $rootScope.$on('$stateChangeStart', function(event, toState) {
            $translate('title').then(function(translated) {
                $rootScope.title = translated;
            });
        })
    })
This works if the translation string is plain text like "My Title", but fails when there are angular variables like in "My {{something}}" because - I think - the scope doesn't have the something variable set even if I set $scope.something in another Controller.
So I think the question is how can I make sure the scope will contain the variables set in say MainCtrl?
 
    