Если вы используете Django. Существует отличный класс для полей десятичной дроби и даты:
https://docs.djangoproject.com/en/1.10/topics/serialization/#djangojsonencoder
используйте это:
import json
from django.core.serializers.json import DjangoJSONEncoder
json.dumps(value, cls=DjangoJSONEncoder)
Я могу придумать два варианта: 1) иметь отдельный отчет для каждой локализованной версии (это становится ужасно быстро, и я не очень рекомендую) или 2) иметь отчет, созданный из приложения (например, Windows / веб-приложение на C #), а затем вы можете локализовать его, используя стандарты локализации .net и установив весь локализованный текст (считанный из файлов ресурсов) в коде.
Я не уверен насчет 2008 года, но мы также находимся на XI R2. У нас есть локализованные отчеты для каждого языка, но только потому, что мы * знаем *, что нам понадобятся только три разных локализованных версии.
Клиент попросил меня разработать для него стратегию локализации. Я хотел написать об этом статью. Благодаря тебе я сделал именно это. http://www.cogniza.com/blog/?p=55
Изменить:
Мне удалось использовать встроенный подотчет (в разделе заголовка отчета), который ссылался на базу данных значений локализации . Я бы добавил это в свою публикацию, но это было довольно сложно.
Другой вариант - создать библиотеку пользовательских функций (UFL), которая обрабатывает эти задачи. Сохраните данные в базе данных или XML-файле. Однако, скорее всего, вы потеряете функциональность ContentLocale.
com / blog /? p = 55Изменить:
Мне удалось использовать встроенный подотчет (в разделе заголовка отчета), который ссылался на базу данных значений локализации. Я бы добавил это в свою публикацию, но это было довольно сложно.
Другой вариант - создать библиотеку пользовательских функций (UFL), которая обрабатывает эти задачи. Сохраните данные в базе данных или XML-файле. Однако, скорее всего, вы потеряете функциональность ContentLocale.
com / blog /? p = 55Изменить:
Мне удалось использовать встроенный подотчет (в разделе заголовка отчета), который ссылался на базу данных значений локализации. Я бы добавил это в свою публикацию, но это было довольно сложно.
Другой вариант - создать библиотеку пользовательских функций (UFL), которая обрабатывает эти задачи. Сохраните данные в базе данных или XML-файле. Однако, скорее всего, вы потеряете функциональность ContentLocale.
Нашел способ локализации таких значений, как DateTimes, в Crystal Reports.
Например, если дата - август 2009 г., а язык - французский, тогда будет отображаться как août-2009.
И все это БЕЗ переключения текущей культуры потоков на французский.
Соответствующий фрагмент кода (пример):
//Locale must be set BEFORE report is opened
if (this.IsEnglish)
{
ReportDoc.ReportClientDocument.PreferredViewingLocaleID =
CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleEnglishCanada;
ReportDoc.ReportClientDocument.LocaleID =
CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleEnglishCanada;
ReportDoc.ReportClientDocument.ProductLocaleID =
CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleEnglishCanada;
}
else
{
ReportDoc.ReportClientDocument.PreferredViewingLocaleID =
CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrenchCanada;
ReportDoc.ReportClientDocument.LocaleID =
CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrenchCanada;
ReportDoc.ReportClientDocument.ProductLocaleID =
CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrenchCanada;
}
//Load the report from file path
ReportDoc.Load(reportPath.ToString());