在本文中,我们将为您详细介绍devanagarii18ninjava的相关知识,此外,我们还会提供一些关于asp.net–将unicode数字从英语转换为devanagari、cordova–I18n
在本文中,我们将为您详细介绍devanagari i18n in java的相关知识,此外,我们还会提供一些关于asp.net – 将unicode数字从英语转换为devanagari、cordova – I18n Phonegap App / gettext?、I18N / Angular JS / Javascript文本、i18next-react - 如何在同一个应用程序中拥有 2 个 i18next 实例的有用信息。
本文目录一览:- devanagari i18n in java
- asp.net – 将unicode数字从英语转换为devanagari
- cordova – I18n Phonegap App / gettext?
- I18N / Angular JS / Javascript文本
- i18next-react - 如何在同一个应用程序中拥有 2 个 i18next 实例
devanagari i18n in java
我能够加载资源包条目,并加载ttf和设置字体,但它不会根据需要呈现jlabel.它显示了代替字符的块.如果我在eclipse中调试,我可以将鼠标悬停在unicode变量上,甚至可以渲染devanagari.下面是代码和资源包供参考.
package i18n; import java.awt.Font; import java.awt.GridLayout; import java.io.InputStream; import java.util.Locale; import java.util.ResourceBundle; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class MyNumbers extends JFrame { private ResourceBundle rb; private Font devanagariFont; public MyNumbers (String language,String fontFile) { loadResourceBundle(language); loadFont(fontFile); display(); } private void display() { String unicode = null; JPanel labels = new JPanel(new GridLayout(0,2)); JLabel uni = null; for(int i=0; i<=10; i++) { unicode = rb.getString("" +i); labels.add(new JLabel("" + i)); labels.add(uni = new JLabel(unicode)); uni.setFont(devanagariFont); } getContentPane().add(labels); setDefaultCloSEOperation(disPOSE_ON_CLOSE); pack(); setVisible(true); } private void loadFont(String fontFile) { try { InputStream input = getClass().getResourceAsstream(fontFile); Font b = Font.createFont(Font.TRUETYPE_FONT,input); devanagariFont = b.deriveFont(Font.PLAIN,11); } catch(Exception e) { e.printstacktrace(); } } private void loadResourceBundle(String language) { String base = getClass().getName() + "rb"; rb = ResourceBundle.getBundle(base,new Locale(language)); } /** * @param args */ public static void main(String[] args) { // Todo Auto-generated method stub new MyNumbers("hi","Devnew.ttf"); } }
这是我创建的MyNumbersrb_hi.properties的资源包.
Default properties in Devnagari 0=\u0915\u0916\u0917: 1=\u090f\u0915: 2=\u0926\u094b: 3=\u0924\u0940\u0907: 4=\u091a\u093e\u0930: 5=\u092a\u093e\u091a: 6=\u091b\u0947: 7=\u0938\u093e\u0924: 8=\u0906\u093e\u0920: 9=\u0928\u094c: 10=\u0926\u0938: random=Random title=Key in numbers to match the words
解决方法
asp.net – 将unicode数字从英语转换为devanagari
任何帮助是极大的赞赏.
解决方法
虽然我知道源文化和目的地文化,但我的解决方案有点不同.所以我可以硬编码数字数组.
string devYear = ""; string[] devD = { "०","१","२","३","४","५","६","७","८","९" }; char[] digits = curYear.tochararray(); foreach (char ch in digits) { devYear += devD[int.Parse(ch.ToString())]; }
另一个变化是我迭代年份数字而不是devD数组.保存少量迭代,因为大多数数字将小于10位数.在我的情况下,只有四位数.
希望对于那些坚持类似路线的人有用.
cordova – I18n Phonegap App / gettext?
我希望用户在启动应用程序时能够选择一种语言.
所以我希望将我的html和javascript文件中的所有字符串翻译成所选语言.
是否有“最佳实践”或我可以使用的插件?
Gettext http://jsgettext.berlios.de/对此非常重视,不是吗?
感谢帮助!
解决方法
I18N / Angular JS / Javascript文本
我在Angular JS中找到了I18N的2个选项:
1)https://github.com/gertn/ng-i18n
2)http://angularjs.de/artikel/angularjs-i18n-ng-translate
它们都非常“类似”:有翻译的占位符(表达式).
所以我的问题是:如何翻译纯文本,例如
在角度服务内(而不是在表达式/占位符中)的通知警报?
解决方法
var translations = { HEADLINE: 'What an awesome module!',ParaGRAPH: 'Srsly!',NAMESPACE: { ParaGRAPH: 'And it comes with awesome features!' } }; var app = angular.module('myApp',['pascalprecht.translate']); app.config(['$translateProvider',function ($translateProvider) { // add translation table $translateProvider.translations(translations); }]); app.controller('Ctrl',['$scope','$translate',function ($scope,$translate) { // expose translation via `$translate` service $scope.headline = $translate('HEADLINE'); $scope.paragraph = $translate('ParaGRAPH'); $scope.namespaced_paragraph = $translate('NAMESPACE.ParaGRAPH'); }]);
i18next-react - 如何在同一个应用程序中拥有 2 个 i18next 实例
如何解决i18next-react - 如何在同一个应用程序中拥有 2 个 i18next 实例?
我开发了一个使用 18next 的组件 npm 库。图书馆的消费者,也使用 18next。 我们为每个实例创建了实例,并使用提供程序组件将其向下传递。
出于某种原因,翻译总是被消费者覆盖。
我尝试了解决方案here
但是当我删除 .use(initReactI18Next) 时,它破坏了组件中的翻译,并没有帮助消费者解决最初的问题。还有其他可行的解决方案吗?
I18n.js 文件 - 在组件项目中:
import i18n from ''i18next'';
import { initReactI18next } from ''react-i18next'';
const resources = {
en: {
translation: require(''./translations/messages_en.json''),},bg: {
translation: require(''./translations/messages_bg.json''),}
const widgetInstance = i18n.createInstance();
widgetInstance
// pass the i18n instance to react-i18next so the t function will be in the context.
.use(initReactI18next)
// init i18next
// for all options read: https://www.i18next.com/overview/configuration-options
.init({
resources,react: {
useSuspense: false,fallbackLng: ''en'',debug: true,interpolation: {
escapeValue: false,// not needed for react as it escapes by default
},})
.then(result => result)
.catch(error => console.error(error));
export default widgetInstance;
使用它的组件:
import i18next from ''../../../locale/i18next'';
....
<I18nextProvider i18n={i18next}>
<div className="myComponent"/>
</ I18nextProvider i18n={i18next}>
组件 npm 库的使用者中的 i18n.js:
import i18next from ‘i18next’;
import {initReactI18next} from “react-i18next”;
const newInstance1 = i18next.createInstance();
export default function i18n(locale: string) {
void newInstance1.use(initReactI18next)
.use({
type: ‘backend’,read: (
language: string,namespace: string,callback: (
err: any | null,translations?: Record<string,string>,) => void,) => {
return import(`./locales/messages_${locale}.json`)
.then(translation => {
callback(null,translation);
})
.catch(error => {
callback(error);
});
},})
.init({
lng: locale,fallbackLng: “en”,keySeparator: false,});
return newInstance1;
}
在消费者的提供者中使用它的组件:
import i18n from ‘../../i18n’;
<I18nextProvider i18n={i18n(locale)}>
<LibrayComponent {...props} />
</I18nextProvider>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
关于devanagari i18n in java的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于asp.net – 将unicode数字从英语转换为devanagari、cordova – I18n Phonegap App / gettext?、I18N / Angular JS / Javascript文本、i18next-react - 如何在同一个应用程序中拥有 2 个 i18next 实例等相关知识的信息别忘了在本站进行查找喔。
本文标签: