Как вы могли бы реализовать подход базы данных для угловой интернационализации?

<html>
<head>
    <meta charset="utf-8">
    <title>Uint32_To_Byte_Array</title>
    <script>
    function body_Add(Msg)
    {
        document.body.innerHTML = document.body.innerHTML + Msg;
    }
    class Byte 
    {
        constructor(Value) 
        {
            this.Number = new Uint8Array(1);
            this.Number[0] = Value;
        }
        get Get() 
        {
            return this.Number[0];
        }
        set Set(newValue) 
        {
            this.Number[0] = newValue;
        }
    };
    class Uint32
    {
        constructor(Value) 
        {
            this.Number = new Uint32Array(1);
            this.Number[0] = Value;
        }
        get Get() 
        {
            return this.Number[0];
        }
        set Set(newValue) 
        {
            this.Number[0] = newValue;
        }
    };
    var Conversion =
    {
        Uint32_To_Byte_Array: function(Source_Num)
        {
            var Uint32_Num = new Uint32(Source_Num);
            var Byte_Num = new Byte(0);
            var Byte_Arr = new Uint8Array(4);
            for (var i = 0; i < 4; i++)
            {
                if (Source_Num > 255)
                {
                    Uint32_Num.Set = Source_Num / 256;
                    Byte_Num.Set = Source_Num - Uint32_Num.Get * 256;
                }
                else
                {
                    Byte_Num.Set = Uint32_Num.Get;
                    Uint32_Num.Set = 0;
                }
                Byte_Arr[i] = Byte_Num.Get;
                Source_Num = Uint32_Num.Get;
            }
            return(Byte_Arr);
        },
        Byte_Array_To_Uint32: function(Source_Byte_Array, Start_Position)
        {
            var Uint32_Num = new Uint32(0);
            var Multiplier = 1;
            for (let i = 0; i < 4; i++)
            {
                Uint32_Num.Set = Uint32_Num.Get + Source_Byte_Array[Start_Position + i] * Multiplier;
                Multiplier = Multiplier * 256;
            }
            return (Uint32_Num.Get);
        }
    };
    function Load_Page()
    {
        var Numbers = [0,1,257,4294967295];
        Numbers.forEach(Convert);
        function Convert(Item, Index)
        {
            var Uint32_Number = Item;
            var Byte_Array = Conversion.Uint32_To_Byte_Array(Uint32_Number);
            var Uint32_Number_Restored = Conversion.Byte_Array_To_Uint32(Byte_Array, 0);
            body_Add("Conversion: Source number: " + Uint32_Number.toString() + ", Byte array: " + Byte_Array.toString() + ", Restored number: " + Uint32_Number_Restored.toString() + "<br>");
        };
    };
    </script>
</head>
<body onload="Load_Page()"> 
</body>

16
задан Kjensen 2 December 2017 в 08:59
поделиться

1 ответ

Пожалуйста, имейте в виду, что создатель ngx-translate сейчас работает в основной команде Angular i18n, и в рамках Angular 5.x работает над тем, чтобы сделать i18n намного лучше. Например. сервис перевода, переключение времени выполнения перевода в AOT и многое другое.

См. Здесь: https://github.com/angular/angular/issues/11405#issuecomment-343933617

Так что я бы рекомендовал придерживаться Angular вне Коробка i18n.

Для веб-сайта моей компании мы используем Text United для переводов, и это работает довольно хорошо. Единственная проблема, с которой мы столкнулись, заключается в том, что по умолчанию теги HTML попадают в инструменты перевода. Наше решение:

  • с использованием XTB
  • В Text United с использованием пользовательского анализатора XML. Исключить ph элементов.

У Text United есть платные варианты, чтобы нанять переводчиков для выполнения работы за вас на любом языке. Конечно, вы можете сделать это и сами. Каждый раз, когда вы просто загружаете исходный язык, и он соответствует уже переведенным элементам.

1
ответ дан Boland 2 December 2017 в 08:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: