Изменить шрифт в зависимости от разных языков? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть приложение на angularJs, и мне нужно поддерживать три языка, и для каждого языка мне нужно использовать разные шрифты.Я использую angular-translate для смены языка, и он работает нормально.Мне нужно изменить шрифт также при смене языка, поэтому, что я сделал, я использовал переменную CSS, а когда языки меняются, я меняю значение переменной с именем font-face.Он работал нормально, а потом я узнал, что переменная CSS не работает в IE.Тогда я решил использовать другую методологию, чтобы сделать это.Я нашел this и подумал, что если у меня будет такой шрифт:

@font-face {
    font-family: 'Regular';
    font-style: normal;
    font-weight: 400;
    src: local('Roboto'), local('Roboto-Regular'), url('../fonts/roboto-regular-webfont.woff2') format('woff2'), url('../fonts/roboto-regular-webfont.woff') format('woff');
    font-display: block;
}

Я добавлю новый стиль с тем же именем и с другим src.Но есть проблема в том, что всякий раз, когда я буду менять язык, я должен добавить новый стиль с другим src.Так есть ли способ удалить font-face в CSS с помощью javascript или есть ли способ обновить или отредактировать src font-face?Или кто-нибудь может сказать мне другой способ сделать это (когда язык меняется, шрифт также должен измениться).

1 Ответ

0 голосов
/ 26 сентября 2018

Попробуйте вставить следующий код в контроллер:

app.controller("bodyController", ($scope) => {
    $scope.lang_fonts = {};
    $scope.lang_fonts["en"] = "font-name";
    $scope.lang_fonts["sp"] = "font-name-2";
    $scope.current_lang = "en";
    document.getElementsByTagName("body")[0].style.fontFamily = $scope.lang_fonts[$scope.current_lang];
    //$("body").css("font-family", $scope.lang_fonts[$scope.current_lang]); // using jQuery
})
...