Функция Implementing Globalization / Multilingual в приложении win32 API

Я думаю, что есть две вещи для изучения математики: 1. Изучение общих методов. Т.е. как сложить две дроби, как дифференцировать, интегрировать. 2. Научиться решать задачи и применять математику в реальном мире.

Я думаю, что, взяв учебники по математике, вы узнаете 1. Многие учебники по математике организованы по разделам, где будет несколько страниц, показывающих вам технику, а затем кучу проблем. Проблемы, как правило, связаны с техникой, которую вы только что изучили, и очень похожи. Т.е. раздел логарифмов будет иметь все проблемы с логарифмами и, вероятно, не будет содержать полиномов. Делая задачи в разделе, вы изучите методы. Чем больше проблем вы решите, тем быстрее вы получите, и тем больше вы поймете концепции. Много раз вы обнаружите, что если вы решите проблемы без явного запоминания формул, вы обнаружите, что после того, как вы сделаете достаточно, необходимые формулы будут запомнены неявно. В конечном итоге, если у вас возникли проблемы с поиском формул вероятности, вы захотите прочитать книгу вероятностей. Если у вас возникли проблемы с обозначением суммы, вы можете обратиться к этому разделу книги по алгебре и т. Д ...

Чтобы выучить 2, я думаю, что учебники по математике не очень помогают, потому что у каждого раздела есть проблемы, связанные с этим разделом. Иногда есть несколько проблем со «смешанным обзором» или «обзор главы», который смешивает проблемы, но они обычно находятся далеко между ними. Научные учебники, такие как физика, биология, химия и т. Д., Как правило, лучше для этого. Там вы часто читаете проблему, выкладываете ее и в конечном итоге используете различные математические инструменты для ее решения. Иногда исчисление, линейная алгебра и геометрия - все в одной задаче. Ценность здесь в том, что она учит вас решать проблемы. Обычно SAT / GRE не проверяют, знаете ли вы, как делать алгебру, они проверяют, знаете ли вы, как применять ее в реальном мире, и проблемы науки действительно помогают вам в этом. Кроме того, программирование в целом касается решения проблем, и чем лучше вы решаете проблемы, тем лучше вы будете заниматься программированием. В основном в программировании вы берете проблемы, создаете ментальную модель, разрабатываете решение, а затем моделируете его на выбранном вами языке программирования. Это похоже на физику. Вы смотрите на проблему, извлекаете математическую модель, проектируете решение, прямо вниз некоторые уравнения с моделью решения, затем вставляете числа. Я очень рекомендую физику, потому что после моего урока физики уроки слова стали для меня простыми, и они использовали быть довольно трудным (хотя и не невозможным).

В повседневном программировании вы, вероятно, не будете использовать больше, чем алгебру и логику (для операторов if и условий цикла). Есть некоторые места, где используется высокая математика, например компьютерные игры, криптология, интеллектуальный анализ данных и т. Д., Но для типичного бизнес-приложения вы, вероятно, не будете использовать больше, чем алгебру и логику, а может быть, и немного теории множеств (материал, настолько базовый, вы уже усвоил это). Даже в местах, где используется высокая математика (например, финансовые компании), часто бизнес-пользователи (или некоторая отраслевая литература) выполняют более высокую математику, и вам просто нужно реализовать уравнения (с некоторой алгеброй). Я упоминаю об этом только потому, что в большинстве книг по программированию нет ничего кроме алгебры и логики, если только вы не читаете учебники по анализу алгоритмов (Введение в алгоритмы), искусственному интеллекту или какой-либо другой области исследований. Книги общего применения о том, как делать вещи, обычно не хватает математики.

Но в зависимости от того, что вы читаете, может помочь математика. Для большинства информатики алгебры + дискретной математики должно быть достаточно. Соедините это с некоторой практикой физики, и вы должны хорошо идти. Это может все еще быть медленным ходом, но у вас должен быть надлежащий фон.

7
задан BIBD 2 November 2009 в 19:52
поделиться

4 ответа

Основы многоязычного приложения в Windows - это использование «ресурсов». ресурс - это фрагмент, добавленный в конец вашего исполняемого файла, который содержит только данные и отформатирован особым образом, чтобы Windows могла интерпретировать эти данные.

в ваших ресурсах вы можете найти диалоговые окна , строковые таблицы, а также информацию о версии (те, которые отображаются в диалоговом окне свойств файла в проводнике). вы можете наблюдать за ресурсами любой dll или exe, открыв exe или dll в Visual C ++. при разработке приложения вы можете создать ресурс (File / New), добавить его в свой проект (так же, как вы добавляете файл) и редактировать ресурсы (с помощью редактора ресурсов, обычно вкладки рядом с File View в проводнике проекта).

каждый ресурс (диалог, диалог, шаблон, информация о версии, таблица строк, ...) содержит идентификатор языка, который вы можете изменить. вы можете создать один и тот же ресурс несколько раз, используя разные языковые идентификаторы. после компиляции, когда приложение загружается Windows, оно пытается открыть ресурсы, язык которых ближе к языку пользовательского интерфейса Windows.

В Windows SDK определен набор функций для эффективного использования этих ресурсов: LoadString, LoadCursor, LoadBitmap и все, что описано в главе ресурсов .

Теперь каждый раз, когда вы используете строку в своем коде поместите его в ресурс String Table и используйте функцию LoadString для его получения. окна и диалоговые окна обычно загружаются на правильном языке без необходимости вызова какой-либо конкретной функции, если вы установили правильный идентификатор языка в ресурсах.

вуаля, это ' это самое короткое введение в многоязычную разработку под Windows, которое я мог сделать. Я уверен, что в сети можно найти много хорошо написанных статей о ресурсах или многоязычной разработке под Windows.

5
ответ дан 7 December 2019 в 05:25
поделиться

Используйте gettext для всех ваших строк.

1
ответ дан 7 December 2019 в 05:25
поделиться

This can be a big problem, or a small problem, depending on what your program does.

Things to look into:

  1. String and character encoding. Putting strings into a resource (or using gettext) is a start, but you may want to consider how you store strings internally; eg. look into a Unicode encoding like UTF-16 if you aren't using such an encoding already.

  2. Consider how you process and store string data, as it matters as well: do you need to sort or do case comparisons? ASCII order (eg comparing the simple value in a 'char') might not be right. Some of these concerns are outlined here.

  3. Date and time output formats, money output formats, and other things depend on culture as well.

  4. Finally, it's possible that you may need to re-layout your UI elements depending on what interface technology you are using. Strings are longer and shorter in different laguages with different system fonts. In the extreme case, you may need to consider your layout for right-to-left readers.

0
ответ дан 7 December 2019 в 05:25
поделиться

Есть несколько сторон, о которых вам нужно беспокоиться:

  1. Скомпилируйте приложение как Unicode
  2. локализуя (переводя) приложение, заставляя его «говорить» на другом языке
  3. использовать локаль -сознательное поведение, где вам нужно сортировать или форматировать дату / время / числа как ожидается пользователем

Для локализации лучшая текущая практика - не использовать строки в вашем коде, а хранить их в библиотеках DLL только для ресурсов (или "вспомогательных DLL") Наверное, лучше всего начать отсюда: http://msdn.microsoft.com/en-us/goglobal/bb978454.aspx , особенно с руководств и презентаций справа.

Для работы по локализации вниз чтобы узнать подробности, вы можете проверить это: http://mihai-nita.net/2007/05/03/how-to-localize-an-rc-file/

Для поведения с учетом локали необходимо используйте специальные API, такие как GetNumberFormat или GetDateFormat. Вероятно, вы можете начать отсюда http://msdn.microsoft.com/en-us/library/dd319078%28VS.85%29.aspx или здесь http://msdn.microsoft. com / en-us / goglobal / dd565826.aspx

Но ответа, конечно же, здесь будет недостаточно, так как есть полные книги по этой теме. Так что просто начните с портала глобализации MS ( http://msdn.microsoft.com/en-us/goglobal/ ), особенно с вкладки «Learn» и o оттуда.

И когда вы столкнетесь с некоторыми проблемами (скорее всего, столкнетесь), зайдите в группу новостей microsoft.public.win32.programmer.international (я знаю, что увольнение кого-то из stackoverflow может быть не лучшим тоном, но есть специальное место, так что вы можете получить более точные ответы).

2
ответ дан 7 December 2019 в 05:25
поделиться
Другие вопросы по тегам:

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