Malaja
|
|
« : 13-09-2007 13:01 » |
|
Господа, работаю на 2003 студии на c#. Ситуация интересная: прога должна работать на многих языках, посему для каждого есть свой файл ресурсов. В текстах присутствует "\n". Далее: если у меня на компе немецко/англоязычная винда и прога стартует на одном из этих языков, то все ОК (т.е. "\n" таки преобразуется в новую строку). Если же я стартую прогу на русском, то сам текст нормально отображается по-русски, а вот с "\n" проблема, бо вместо новой строки я вижу какой-то квадратик... Аналогично и наоборот: на русскоязычной винде та же проблема возникает при запуске проги на английском... Соответственно вопрос: это вообще как? Почему это происходит? Это баг или как? В мфц я такого не замечала...
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #2 : 13-09-2007 13:31 » |
|
Да фиг его знает. В 2005 они вобще это вырубили. \n в ресурсах ваще интерпретируется как... \n Те хочешь принудительный перенос строки - делай поиск замену \\n на \n. Чёт меня этот до-диез достаёт.
А про русский-немецкий надо попробовать.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Malaja
|
|
« Ответ #3 : 13-09-2007 13:33 » |
|
Tuborg,
ну я как-то сразу исходила из того, что теоретически там, в c#, все юникод...
Сейчас попыталась поискать в свойствах проекта, но не нашла... Прости за тупость - Ты знаешь, где оно спрятано?
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Malaja
|
|
« Ответ #4 : 13-09-2007 13:36 » |
|
Джон,
погоди, я уже вообще ничего не понимаю! Если я набиваю текст, то я пишу "\n"! А откуда берется "\\n"? Прости за вопрос, но то я чего-то явно не понимаю / не знаю...
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #5 : 13-09-2007 14:05 » |
|
А эта скотинка думает что ты именно \ вместе с n хочешь показать. В С++ ресурсах тоже самое с " если ты в редакторе ресурсов пишешь что-то типа
Чтобы закончить нажмите кнопку "ОК".
то в ресурсах это выглядит так:
Чтобы закончить нажмите кнопку ""ОК"".
Хотя конечно с \n там получше. Ну и тп & для подчёркивания. Кстати навело на мыслю эту штуку можно стилем отрубить (в С++) SS_NOPREFIX. У диеза есть подобная штука наоборот, чтобы каждый раз не писать "c:\\programme\\" делаешь просто @"c:\programme\" короче все спец символы игнорируются. Попробуй в этом направлении покопать.
Хотя при чём тут локаль? Хм...
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Malaja
|
|
« Ответ #6 : 13-09-2007 14:24 » |
|
Джон, интересно - я никогда этого не видела, а сейчас посмотрела и таки да - всюду стоит "\\n"! Может я неправа, но теоретически "\\n" - спецсимвол, посему к локали никакого отношения иметь не может... Спецсимвол он и в Африке спецсимвол Далее, "\\n" встроено в какой-то текст, т.е. при обращении к ресурсам вся строка (включая спецсимволы) будет переведена в юникод, причем если исходить из того, что я вижу русские буквы, то это таки происходит! Напрашивается вывод, что это нормально. Но с другой стороны, я же должна иметь возможность, например, сидя в России на русской винде включить прогу на английском! Короче, я уже ни фига не понимаю...
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #7 : 13-09-2007 15:01 » |
|
к локали никакого отношения иметь не может И я про тоже. А винда какая?
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Malaja
|
|
« Ответ #8 : 13-09-2007 15:04 » |
|
xp
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #9 : 13-09-2007 15:53 » |
|
А что остальные языки? НАпример французский? Тоже не работает? Или работает? Если точнь так же как немецкий, то тогда юникод надо ковырять.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Malaja
|
|
« Ответ #10 : 14-09-2007 08:04 » |
|
Джон, спасибо за идею! Проверила - франзузкий текст показывается верно. Зато когда я включила китайский, то почесала в затылке - само сообщение проверить я не могла (его еще не перевели и оно появилось на английском), зато основная масса текстов была показана какими-то квадратиками (как и "\n"), т.е. они не были распознаны как буквы... Видать, юникод не виноват, т.е. если бы это был он, то вообще ничего не было бы читабельно. А так какая-то смесь гремучая... Я медленно прихожу к мысли, что там что-то у мелкомягких не то. Ну или моя женская логика сбоит
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Malaja
|
|
« Ответ #11 : 14-09-2007 09:20 » |
|
Это полный... Мне тестеры сейчас дали комп с установленной на нем русской виндой. То, что я увидела, наводит меня на мысль об выпить и забыться от ужаса ) Там происходит та же дрянъ!!! Т.е. вместо новых строк - квадратики!!! Но это же нонсенс!!! Тут же уже все сходится - установки винды и язык ресурсов! Короче, я тихо ловлю крышу...
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Malaja
|
|
« Ответ #12 : 14-09-2007 11:01 » |
|
Сразу докладаю нарытое - проблему пока не решила, но уже выяснила вот что (оочень тщательно покопалась в коде ) - может кому-то это понадобится: в самих ресурсах при внесении текста набивали по привычке "\n" , при считывании из ресурсов просто программно тихо заменяли на "\r\n": text = text.Replace(@"\n", "\r\n"); Попробовала убрать замену и сразу же выяснила, что текст показывается неверно, т.е. "\n" не распознается как служебный символ и отображается в тексте как естъ, т.е. как часть текста : "erunda polnaja\n" (тест проводила на немецкой винде с немецким же текстом).
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Malaja
|
|
« Ответ #13 : 14-09-2007 11:52 » |
|
Результат!!! Поубивать переводчиков!!!! Эти ..., т.е. товарищи, которые нам совсем не товарищи, умудрились в части текстов пропустить "\\n" и внесли только "\n"... Мда, а программеры таки виноваты... Оказывается, это уже было, просто я об этом не знала... Т.е. когда я сказала начальнику о прочине ошибки, он вспомнил, что прецедент уже был... И где он был раньше, когда я почти день на поиски потратила? Еще раз всем спасибочки и приношу свои глубокие извинения за беспокойство.
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #14 : 14-09-2007 14:52 » |
|
Willkommen in Club. Я уже почти всех переводчиков приучил. Но вот чех зараза. Постоянно забывает, что надо "" ставить вместо ". Уже и не знаю что с ним делать. И ведь главное замену не сделаешь - в начале и в конце должны одинарные стоять. Я уже теперь как только компилятор ругается сразу перевод заворачиваю со всеми вытекающими формальностями. У нас ща полегче стало - превод клиент сам делает, ему так дешевле. Мы ему только тексты даём. Ну и выходит, что сам себе жизнь портит. А воспитать хороших переводчиков это арихважнейшая задача.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
pmoter2006
Гость
|
|
« Ответ #15 : 14-09-2007 21:50 » |
|
// Вместо \n надо писать System.Environment.NewLine // Например:
string a = "the end " + System.Environment.NewLine;
//и ненадо разводить пустые полемики.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #16 : 14-09-2007 22:17 » |
|
pmoter2006, ну ты блин и загнул... полемику... вместо привычного и простого , как не червивое яблоко, \n ставить какую то закорючку на пол экрана И как это они так ошиблись ? И как это они (ах они такие) развели полемику сорри за резкость... это всё гр****ный шарп. Вернее кривые руки его создателей
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #17 : 15-09-2007 17:19 » |
|
pmoter2006, хм... а это идея. И что у тебя с переводчиками это прокатывает? Где брал таких? Мои выдадут вот такое: "это конец" + система.среда.НоваяЛиния Ну, а насчёт полемики... Дык эт как посмотреть, ведь \n не есть \r\n.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
pmoter2006
Гость
|
|
« Ответ #18 : 16-09-2007 08:09 » |
|
На разных сиситемах для перехода на новую строку может понадобиться разная последовательность спец символов. Таже проблема может возникнуть с разделителями десятичных знаков. Используйте системные переменные поставляемые средой выплнения, вместо того чтобы находить их самим.
|
|
|
Записан
|
|
|
|
nikedeforest
|
|
« Ответ #19 : 16-09-2007 09:18 » |
|
pmoter2006, +1
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #20 : 16-09-2007 13:37 » |
|
На разных сиситемах для перехода на новую строку может понадобиться разная последовательность спец символов.
какая чушь! Стандарт рулит! разные системы просто ОБЯЗАНЫ пользоваться \r\n для перехода на новую строку. Зачем нарушать привычные вещи ?
|
|
|
Записан
|
|
|
|
nikedeforest
|
|
« Ответ #21 : 16-09-2007 15:03 » |
|
Алексей, родителем чуши являешься ты сейчас. Стандврт чего рулит? Языка??? Или еще чего? Тебе для справки, в юникс системах работает не \r\n, а если не ошибаюсь просто \n.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #22 : 16-09-2007 15:39 » |
|
nikedeforest, хотя бы языка.
зы а в юникс-системах (с) есть шарп ? 0:)
|
|
« Последнее редактирование: 16-09-2007 15:41 от Алексей1153++ »
|
Записан
|
|
|
|
nikedeforest
|
|
« Ответ #23 : 16-09-2007 17:02 » |
|
И к стандарту какого языка ты хочешь прибегнуть? Что ты хочешь от туда извлечь? Ты видел хоть этот стандарт-то? По поводу твоего "зы", вроде уже есть версии фрэймворка заточенные на никсовые системы. Если не ошибаюсь, это разработка сторонней конторы (в смысле не МАйкрософт), там пока нет переносимости ГУИ, но консоль уже работает. В принципе строение .НЕТ ничем не мешает повторить путь Явы, технология в целом такая же. Так что дело за реализацией. Думаю взаимоотношения Майкрософт и Новелл нас к этому вполне могут привести в весьма не далеком будущем. зы: Алексей, зачем ты постишь в этой ветке? Какой толк от твоих постов? Ты постоялец клуба, у тебя за две тысячи постов. По сути ты входишь в состав постояльцев-индикаторов клуба. Так что будут думать новички о клубе, читая твою ересь здесь? Надо нести что ли какой-то груз ответственности за то, что ты здесь пишешь. Как считаешь?
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #24 : 16-09-2007 17:29 » |
|
nikedeforest, мне по барабану, что подумают, у остальных людей своё мнение тоже должно быть. А вот ты какой то агрессивный стал Но если тебе очень неприятно мои посты видеть, говори в ЛС, что мне надо удалить, буду удалять.
|
|
« Последнее редактирование: 16-09-2007 17:32 от Алексей1153++ »
|
Записан
|
|
|
|
nikedeforest
|
|
« Ответ #25 : 16-09-2007 18:08 » |
|
Удалять надо холиварные посты, которые уже заели достаточно. Ты заходишь в ветку .НЕТ и пишешь, что .НЕТ говно. Внимание вопрос: "зачем?". Это как придти в гости и сказать, ну у вас тут и дерьмо. Мода странная пошла, и не только у тебя. Ей бы уже давно пройти, а она наоборот возродилась. Вроде уже были и жаркие споры и разошлись уже, но все равно не проходят эти выкрики из подворотни. ИМенно из подворотни, потому что нет конкретной темы об этом, я эти слова читаю уже почти во всех темах, где запостились опред. пользователи. А в этой теме посмотри. Ты, с видом гуру программинга, набрасываешься на человека (при чем на новичка)не разобравшись в теме. Тебе достаточно было в Яндексе набрать System.Environment.NewLine;, но ты не удосужился этого сделать. Если наличие таких вещей тебя не смущает и тебе на это надо постоянно указывать в ЛС, то я уж не знаю как это назвать.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #26 : 17-09-2007 03:41 » |
|
nikedeforest, процитируй, где я хоть 1 (один) раз сказал, что НЕТ - "говно" ? Где хоть слово про гуру ? Я пишу, что не нравиться мне с моей точки зрения, ты защищаешь. И, наверное, правильно делаешь - потому что, если платформу никто защищать не будет, значит я прав И пусть я даже и не прав. Репутацию форума (если ты за неё боишься) я не порчу , ничего я такого не писал вовсе , ну а что обо мне люди подумают - это мне совершенно фиолетово про "набрасывание на человека" - я ни капельки не сомневаюсь (и не сомневался) , что та закорючка есть и при том правильно работает Но искать то мне её зачем
|
|
« Последнее редактирование: 17-09-2007 03:46 от Алексей1153++ »
|
Записан
|
|
|
|
Malaja
|
|
« Ответ #27 : 17-09-2007 07:50 » |
|
Мальчики,
я вас умоляю - остановитесь!!!! Ну ведь все можно решить спокойно!!! Уже ведь договаривались!!!
nikedeforest,
я сама недавно работаю в шарпе (студия 2003) и многое пока мне чаще мешает, чем помогает (я долго работала с шестой студией, оттуда и привычки, плюс мфц тоже во многом прозрачней, чем новый фрейм). Тут тоже все не так уж и однозначно. Ну разве это повод ссоритъся или злиться?
ПО поводу темы: как сказал Джон, "\n не есть \r\n"! В мфц в общем случае работают оба варианта (если речь идет о MessageBox или TRACE), хотя при этом же в TExtBox-е для организации переноса на новую строку надо использовать \r\n!
pmoter2006,
во-первых, спасибо за подсказку, я этого нигде не видела, теперь хоть знать буду!
Но! у меня тот же вопрос, что и у Джона - как это должно выглядеть в ресурсах??? Т.е. в обычной жизни я иду в файл .resx и вношу там свой текст с соответствующим ему идентификатором, т.е. на выходе имею:
<data name="MY_TEST"> <value>It is a Test System.Environment.NewLine for NL</value> </data>
Если я загружаю этот текст с помощью менеджера ресурсов:
string tmp_nl = m_RM.GetString("MY_TEST");
то на выходе вижу: "It is a Test System.Environment.NewLine for NL"
т.е. в этом виде оно несьедобно... Как это можно исправить (если вообще это возможно)? Возможно, надо ставить какие-то спецсимволы? О проблемах с переводчиками повторять Джона не буду - ситуация одинакова и как ее решить в данной ситуации, я пока еще не знаю.
Проблема же заключается в том, что у нас все тексты сидят именно в ресурсах!
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Malaja
|
|
« Ответ #28 : 17-09-2007 08:47 » |
|
Вопрос вдогонку (просьба ногами не бить): написала в ресурсах: <data name="MY_TEST"> <value>It is a Test \r\n for NL</value> </data> Загрузила: string tmp_nl = m_RM.GetString("MY_TEST"); А вот в переменной в результате получила что-то странное: @"It is a Test \r\n for NL" Откуда взялся значок *** @ *** ? Я же его не добавляю!!! А главное, в результате не происходит перенос строки! Т.е. \r\n не воспринимаются как NL!
|
|
|
Записан
|
холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #29 : 17-09-2007 10:40 » |
|
Вот ведь Иринка! Добрейшей души человек. А ведь погла и послать куда подальше. Ну в принципе всё правильно (только очень мягко, откуда столько такта? ). Хочется только добавить - какие нафиг -никсы и другие платформы? О какой нафиг кроссплатформенности вы "полемите"? Ведь ясно же сказано - Уиндовс ИксПи. Теоретики любимые до слёз. Когда ж вы наконец уже уясните, что реальная жизнь очень сильно отличается от книжных стандартов. Конечно хотелось бы чтобы всё было как в книжке. Но так бывает только в книжках и в кино. Вот есть у тебя ресурсов строчек эдак под 10000 из С++ проекта, которые портировали на С#, и которые теперь надо перевести на другие языки. А там полно \n. И что прикажете с ними делать? А с точки зрения начальства и клиентов ВСЁ УЖЕ ГОТОВО!!! И никто тебе времени не даст (читай не оплатит) всё заново делать. И каким боком сюда вписываются ваши советы с системными переменными? Почему игнорируются замечания, что \n не есть \r\n? Где конкретные решения помогающие решить проблему поднятую в этой теме? nikedeforest, за что ты поставил +? За повторение азбучных истин? Какую пользу повторение уже сказанного привнесло в решение данной проблемы? В чём именно ты увидел помощь и дал положительную оценку? Причём здесь перевод строки в типографском смысле? Речь идёт о РЕСУРСАХ под ВИНДОЙ!!! А не о распечатке на принтере под Линуксом. зы Ну а для Лёшки вобще все системы кроме шестёрки С++ чужды и враждебны. Оппозиция тоже должна быть. Иначе не будет развития.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
|