Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно реализовать слово и два его перевода 
:(
    Опции темы
transkriptsiya
Дата 18.1.2015, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



нужен список дней недели на русском и еще на двух языках. Подскажите как правильно это реализовывать - через enum, массив или как то-еще?
PM MAIL   Вверх
Cheloveck
Дата 18.1.2015, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Как-то так:

Код

    enum Language {
        Russian,
        English,
        Spanish
    }    
    
    class MainClass {
        static Dictionary<DayOfWeek, Dictionary<Language, string>> GetDayOfWeeks() {
            return  new Dictionary<DayOfWeek, Dictionary<Language, string>> {
                {
                    DayOfWeek.Monday, 
                    new Dictionary<Language, string> {
                        { Language.English, "Monday" },
                        { Language.Russian, "Понедельник" },
                        { Language.Spanish, "Lunes" }
                    }
                },
                {
                    DayOfWeek.Tuesday, 
                    new Dictionary<Language, string> {
                        { Language.English, "Tuesday" },
                        { Language.Russian, "Вторник" },
                        { Language.Spanish, "Tmartes" }
                    }
                },
                {
                    DayOfWeek.Wednesday, 
                    new Dictionary<Language, string> {
                        { Language.English, "Wednesday" },
                        { Language.Russian, "Среда" },
                        { Language.Spanish, "Miércoles" }
                    }
                },
                {
                    DayOfWeek.Thursday, 
                    new Dictionary<Language, string> {
                        { Language.English, "Thursday" },
                        { Language.Russian, "Четверг" },
                        { Language.Spanish, "Jueves" }
                    }
                },
                {
                    DayOfWeek.Friday, 
                    new Dictionary<Language, string> {
                        { Language.English, "Friday" },
                        { Language.Russian, "Пятница" },
                        { Language.Spanish, "Viernes" }
                    }
                },
                {
                    DayOfWeek.Saturday, 
                    new Dictionary<Language, string> {
                        { Language.English, "Saturday" },
                        { Language.Russian, "Суббота" },
                        { Language.Spanish, "Sábado" }
                    }
                },
                {
                    DayOfWeek.Sunday, 
                    new Dictionary<Language, string> {
                        { Language.English, "Sunday" },
                        { Language.Russian, "Воскресенье" },
                        { Language.Spanish, "Domingo" }
                    }
                }
            };
        }
        
        public static void Main(string[] args) {
            var dows = GetDayOfWeeks();
            foreach(DayOfWeek dow in Enum.GetValues(typeof(DayOfWeek))) {
                foreach(Language lang in Enum.GetValues(typeof(Language))) {
                    Console.WriteLine("{0} in {1}: {2}", 
                        Enum.GetName(typeof(DayOfWeek), dow), 
                        Enum.GetName(typeof(Language), lang),
                        dows[dow][lang]);
                }
                Console.WriteLine();
            }
        }



http://ideone.com/Ies4Jt


--------------------
user posted image
PM Jabber   Вверх
transkriptsiya
Дата 18.1.2015, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



многовато кода. а если в массив одной строкой "Понедельник Monday Lunes" и потом делить substringом по пробелу? Говнокод будет?
PM MAIL   Вверх
Cheloveck
Дата 18.1.2015, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(transkriptsiya @  18.1.2015,  21:37 Найти цитируемый пост)
Говнокод будет? 


Цитата(transkriptsiya @  18.1.2015,  21:37 Найти цитируемый пост)
Говнокод будет 




--------------------
user posted image
PM Jabber   Вверх
diadiavova
Дата 19.1.2015, 00:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(transkriptsiya @  18.1.2015,  20:37 Найти цитируемый пост)
многовато кода. а если в массив одной строкой "Понедельник Monday Lunes" и потом делить substringом по пробелу? Говнокод будет? 

В общем случае, если есть конечный набор данных и возможность компактно все записать, то лучше так и сделать. А еще лучше в ресурсы добавить текст и тянуть оттуда. Но в случае с днями недели такой необходимости нет, поскольку все уже встроено для основных языков.
Код

        static string GetWeekDayName(DayOfWeek day, string langCode)
        {
            var culture = System.Globalization.CultureInfo.CreateSpecificCulture(langCode);
            return culture.DateTimeFormat.GetDayName(day);
        }


Второй параметр будет ru es en ar и так далее в зависимости от языка.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transkriptsiya
Дата 24.1.2015, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



Подскажите как нужно оформить текст в ресурсах?
В одной строке одно слово со значениям и произношением
или  разносить все по разных файлах. например в одном все русские слова во втором все английские и т.д - а потом их как-то связывать?
PM MAIL   Вверх
diadiavova
Дата 24.1.2015, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(transkriptsiya @  24.1.2015,  17:33 Найти цитируемый пост)
В одной строке одно слово со значениям и произношением
или  разносить все по разных файлах. например в одном все русские слова во втором все английские и т.д - а потом их как-то связывать? 

Все зависит от задачи. Если тебе надо записать несколько значений как это было описано в топикстарте, то использовать какие-то сложные механизмы - это "из пушки по воробьям". Сделай как удобнее. Например в случае с днями недели, ты их можешь получить с помощью той функции, что я написал на нескольких десятках языков, при этом ничего дополнительно не создавая. Тебе только понадобится словарик с транскрипциями. Но если нужна более развернутая система, которую еще возможно и дополнять придется, то вероятно будет лучше сделать все по науке, чтобы все встроенные механизмы локализации были доступны. Начни изучать вопрос к примеру отсюда
https://msdn.microsoft.com/ru-ru/library/21...=vs.110%29.aspx


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.