Перевод текста

Программирование на Юнити.

Перевод текста

Сообщение Sarmat 21 янв 2021, 13:03

Добрый день. Подскажите, пожалуйста, как можно сделать перевод фразы "Last hightscore: "? Перевод обычного текста у меня получилось сделать. Если тут делать так же, то подсчет очков больше не идет, просто слово "Рекорд" на разных языках (в зависимости от выбранного) без очков.

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Record : MonoBehaviour
{
    public Text Records;
    private Text comp;
    // Start is called before the first frame update
    void Start()
    {
        comp = GetComponent<Text>();
        comp.text = PlayerPrefs.GetInt("Record").ToString();
        Records.text = "Last hightscore: " + comp.text;
    }
}
 
Sarmat
UNец
 
Сообщения: 5
Зарегистрирован: 09 янв 2021, 10:23

Re: Перевод текста

Сообщение Sarmat 21 янв 2021, 13:24

Перевод обычного текста делал двумя скриптами. Первый:

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Translator : MonoBehaviour
{
    private static int LaungageID;

    private static List<Transletable_text> listId = new List<Transletable_text>();

    #region ВЕСЬ ТЕКСТ [двухмерный массив]
    private static string[,] LineText =
    {
        #region АНГЛИЙСКИЙ
        {
        "Start", // 0 - Старт
        "Options", // 1 - Опции
        "Exit", // 2 - Выход
        "Last Hightscore", // 3 - Рекорд
        "Back", // 4 - Назад
        "Change language", // 5 - Выбор языка
        "Select a spaceship" // 6 - Выбор корабля
        },
        #endregion

        #region РУССКИЙ
        {
            "Старт",
            "Настройки",
            "Выход",
            "Прошлый рекорд",
            "Назад",
            "Выбор языка",
            "Выбор корабля"

        },
        #endregion

        #region НЕМЕЦКИЙ
        {
            "Start", // 0 - Старт
            "Optionen", // 1 - Опции
            "Ausstieg", // 2 - Выход
            "Vergangene Aufzeichnung", // 3 - Рекорд
            "Zurück", // 4 - Назад
            "Sprachauswahl", // 5 - Выбор языка
            "Raumschiff auswählen" // 6 - Выбор корабля
        },
        #endregion
    };
    #endregion

    static public void Select_laungage(int id)
    {
        LaungageID = id;
        Update_texts();
    }

    static public string Get_text(int textKey)
    {
        return LineText[LaungageID, textKey];
    }

    static public void Add(Transletable_text idtext)
    {
        listId.Add(idtext);
    }

    static public void Delete(Transletable_text idtext)
    {
        listId.Remove(idtext);
    }

    static public void Update_texts()
    {
        for (int i = 0; i < listId.Count; i++)
        {
            listId[i].UIText.text = LineText[LaungageID, listId[i].textID];
        }
    }
}


Второй:

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Transletable_text : MonoBehaviour
{
    public int textID;
    [HideInInspector] public Text UIText;

    private void Awake ()
    {
        UIText = GetComponent<Text>();
        Translator.Add(this);
    }

    private void OnEnable()
    {
        Translator.Update_texts();
    }

    private void OnDestroy()
    {
        Translator.Delete(this);
    }
 
}
Sarmat
UNец
 
Сообщения: 5
Зарегистрирован: 09 янв 2021, 10:23

Re: Перевод текста

Сообщение 1max1 21 янв 2021, 13:30

то подсчет очков больше не идет

И каким образом текст влияет на подсчет?
Аватара пользователя
1max1
Адепт
 
Сообщения: 4413
Зарегистрирован: 28 июн 2017, 10:51

Re: Перевод текста

Сообщение Sarmat 21 янв 2021, 13:39

1max1 писал(а):
то подсчет очков больше не идет

И каким образом текст влияет на подсчет?

Не подсчет. Пропадает сам рекорд, количество очков. Если Я вешаю на текст второй скрипт, ставлю id 3 (по первому скрипту), то сама надпись и переводится, число очков рекорда пропадает
Sarmat
UNец
 
Сообщения: 5
Зарегистрирован: 09 янв 2021, 10:23

Re: Перевод текста

Сообщение 1max1 21 янв 2021, 16:11

Значит не влезает, делай меньше шрифт, расширяй рамку или ставь best fit.
Аватара пользователя
1max1
Адепт
 
Сообщения: 4413
Зарегистрирован: 28 июн 2017, 10:51

Re: Перевод текста

Сообщение Sarmat 21 янв 2021, 16:31

1max1 писал(а):Значит не влезает, делай меньше шрифт, расширяй рамку или ставь best fit.

Это не помогает, я пробовал
Sarmat
UNец
 
Сообщения: 5
Зарегистрирован: 09 янв 2021, 10:23

Re: Перевод текста

Сообщение lol 26 янв 2021, 00:15

Ну так "listId[i].UIText.text = " похоже просто перезаписывает весь текст с очками, который там был до этого.
lol
UNIверсал
 
Сообщения: 494
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7