1. 国际结算的方式和工具主要有哪些
就现在国际形式一般而言,绝大部分进出口商结算都是通过汇款结算、托收结算和信用证结算(当然还有国际保理和福费廷等等,但是用的范围较小)。
①汇款结算方式
此种方式风险较大,结算的基础是商业信用,局限性大。一般适用于同一个总部的分公司或子公司之间的货款结算,或是形成了长期良好信用合作关系的进口商和出口商之间。虽然手续最简单,银行手续费最少,但资金负担不平衡。资金负担完全由某一方承担,在货到付款的情况下是出口商,在预付货款的情况下则是进口商。结算过程中,双方均无法获得贸易融资。
②托收结算方式
托收也是基于商业信用的结算方式。采用托收方式结算利于出口商节约费用,控制成本,但无法控制进口商因破产或倒闭而无力支付货款的风险;或者是货物发运后进口地货价下跌,进口商不愿承兑或付款交单,就可能借口货物规格不符合要求或包装不良,要求降价;而且在拉美地区习惯上把远期付款交单按承兑交单方式对待,即进口商承兑远期汇票后,就立即交单给进口商,出口商很可能面临财货两空的风险。
对于进口商而言虽然可能面临付款或承兑后凭提单提取的货物与合同不符或者货物为次货假货等,但在出口商备货和装运阶段,进口商不必预付货款、占压资金,支付货款后可立即取得单据并处置货物,获得短期资金融通。
因此,托收是一种有利于进口商而不利于出口商的结算方式。
③信用证结算方式
此方式是由银行在一定条件下承担确定的付款责任,因为银行的介入有效地解决了卖房担心不能及时收回货款和买方不愿意预支货款的矛盾,增加了出口商和进口商的交易安全性,收到了极大的欢迎并随之有了长足的发展。因此,一般初次交易的双方或者交易额较大的情况下,进出口商愿意选择信用证方式。
但是近些年来,由于信用证手续复杂,费用较高以及单证不符点无法避免等诸多原因,导致其在全球使用比例下降。以我国为例,出口信用证使用的平均比例仅为三成左右,但进口信用证比例远高于出口信用证,而且我国每年使用信用证涉及的结算金额是所有结算方式中最高的。
2. 国外有什么有名的社交软件
1.嘎嘎,是一款基于国际翻译的社交移动应用软件,也是GaGaHi国际交友平台的手机应用软件。8种语言9种文字让你与世界每一个人无语言障碍的畅聊,通过嘎嘎让你结识全球每一个朋友,实时多语言翻译让你们彼此走进对方的心灵世界。
2.Twitter(非官方中文惯称:推特 )是一家美国社交网络(Social Network Service)及微博客服务的网站,是全球互联网上访问量最大的十个网站之一。是微博客的典型应用。它可以让用户更新不超过140个字符的消息,这些消息也被称作“推文(Tweet)”。
3.腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于互联网的即时通信(IM)软件。腾讯QQ支持在线聊天、视频通话、点对点断点续传文件、共享文件、网络硬盘、自定义面板、QQ邮箱等多种功能,并可与多种通讯终端相连。
3. 软件国际化的dot Net中软件国际化常用的方法
1. 语言INI配置文件
最常用的一种, 为每种语言单独配置一个文件,修改语言包时不需要重新编译软件。
2. Resource 文件
内容存在于Resource资源文件中, 切换语言时须再次全部获取一次,修改语言包的时候, 需要重新编译软件。
4. 如何使用qt的国际化,本地化支持 步骤
国际化是指在代码设计上加入能方便的移植到其他国家和地区的特性。而本地化是指将具有国际化支持的代码翻译成本国或地区的语言,是本地用户更容易使用。 I18n是Internationalization的简写,l10n是Localization的简写。
在Qt中创建可以国际化的代码
最常见的是将要翻译的字符串加上tr语句,tr语句的标准语法是:
Context::tr(sourceText,comment), 比如 QString str2 = QTextEdit::'''tr'''(“Letter”,”paper size”);
Context(上下文)和comment(注释)是可以省略的,它们的意思分别是 Context:用于指明该翻译文字所在的上下文,一般为类名。因为同样的一个字串在不同的环境中翻译出来是不一样的,比如都是死,皇帝是崩,普通老百姓就是死翘。 comment: 用于指明要翻译文字的一个注释。因为作翻译的可能并不是写代码的人。比如spring既有弹簧的意思,又有春天的意思。designer里面选组建的时候,有一个blue spring(蓝色的弹簧)是用于addStretch()的,如果没加说明,有可能被翻译成蓝色的春天。
在写代码的时候,我们可能希望把所有的字符串都放在一个地方,而方便于我们自己集中作改动。真正用到的时候,用一个字符常量指针去访问。那么我们可能想到这样写代码
// Wrong,这种实现Qt不认识,无法作翻译
const char *appName=“OpenDrawer 2D”;
QString translated=tr(appName);
//ok, 需要使用QT_TR_NOOP字串来提醒Qt系统该翻译的字串
const char *appName=QT_TR_NOOP(“OpenDrawer 2D”);
QString translated=tr(appName);
QT_TR_NOOP的语法是QT_TR_NOOP(sourceText),它还有两个变体,语法如下
QT_TRANSLATE_NOOP ( context, sourceText )
QT_TRANSLATE_NOOP3 ( context, sourceText, comment )
对应介绍的context和comment,其意思应该不难理解
还有一种情况是在一个字串中有一部分来源于变量。那我们看看两种正误的写法
// wrong 这种写法无法被正确识别
statusBar()->showMessage('''tr'''(“Host ” + hostName+“ found”);
//ok 利用了QString的arg()函数。在翻译时,需保留%1
statusBar()->showMessage('''tr'''(“Host %1 found”).arg(hostName)
在书写了含可翻译语句的程序后,我们来看看如何生成翻译文件
生成翻译文件
首先要修改.pro工程文件,比如在app.pro里加入
TRANSLATIONS+=app_en.ts app_zh_CN.ts app_zh_TW.ts #后面你可以加你想要翻译的各种版本
CONFIG += localize_deployment
SYMBIAN_SUPPORTED_LANGUAGES += zh_CN
SYMBIAN_LANG.zh_CN = 31
注:其中SYMBIAN_SUPPORTED_LANGUAGES ,SYMBIAN_LANG.zh_CN 两行是localize_deployment.prf 中缺少的两行,简体中文qs 文件只使用语言代号zh时 与系统解析的" 语言_区域"区域格式不符,请先这样设置。
然后在shell, 里执行如下语句( 在Qt SDK 中请打开Qt for Desktop的命令行,目前lupdate 命令没有为Qt for symbian生成的版本)
$ lupdate app.pro
$ linguist app_zh_CN.ts
$linguist app_zh_TW.ts
$ lrelease *.ts
$ lupdate app.pro #会根据.pro里指示的内容,生成app_zh_CN.ts和app_zh_TW.ts $ linguist app_zh_CN.ts 翻译其中一个文件,linguist是一个图形化的工具, $linguist app_zh_TW.ts 翻译另一个, $ lrelease *.ts 将.ts文本文件转换成.qm二进制文件,会生成app_zh_CN.qm和app_zh_TW.qm,方便应用加载
.ts 是Text String的缩写;.qm是Qt Message的缩写所以翻译文件生成的流程就是 .cpp —> .ts —>.qm lupdate是负责找出qt源代码中需要翻译的字符串的。会搜tr/QT_TR_NOOP/QT_TRANSLATE_NOOP /QT_TRANSLATE_NOOP3等语句 linguist是手动翻译.ts文件的一个工具,真正加入本地语言是在这一步 lrelease是将.ts转换成.qm的一个工具。需要提醒一下的,lupdate生成的.ts文件不会覆盖掉已经翻译过的.ts文件,只会更新其中的内容。所以其名字为languange update
有了翻译文件,我们看看系统是怎么加载翻译文件的。
加载翻译文件
一个例子,很简单的说明问题
QTranslator qt_translator;
QTranslator app_translator;
if( usersettings.language == SimpleChinese ) {
// Qt’s own translations
qt_translator.load("qt_zh");
qApp->installTranslator( &qt_translator );
// application translation
app_translator.load("myprogram_zh");
qApp->installTranslator( &app_translator );
}
这里,我们看到有两个翻译加载器,其中一个是加载应用程序的翻译文件,也就是我们在第二个步骤中生成的文件。另外一个是Qt系统的翻译文件,比如 Qt的版权信息,designer的一些菜单等,名字叫qt_后带一个语言版本。
有时候我们在系统启动的时候,就需要判断本地的语言,然后加载不同的翻译文件,那么代码就是如下结构
QString locale = QLocale::system().name();
QTranslator translator;
translator.load(QString("trollprint_") + locale);
app.installTranslator(&translator);
在pro文件中部署qm文件,使得在symbian系统下能方便的检索到qm文件,而不用再load方法中设置路径
symbian: {
addFiles.sources = helloworld_en.ts helloworld_zh_CN.qm helloworld_zh_TW.qm helloworld_zh_HK.qm
addFiles.path = .
DEPLOYMENT += addFiles
}
本地设置的语言,和我们的.qm前面部分并不完全一样,有一个.qm查询的过程,假如本地字语言名字是fr_CA.ISO8859-15,加载程序会按照 trollprint_fr_CA.ISO8859-15.qm,trollprint_fr_CA.qm,trollprint_fr.qm顺序来加载,如果以上都没有,将使用默认的语言
一个极其简单的例子 //main.cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTranslator translator;
translator.load("hellotr_zh");
app.installTranslator(&translator);
QPushButton hello(QPushButton::tr("Hello world!"));
hello.resize(100, 30);
hello.show();
return app.exec();
}
本地化中文例程:File:HelloWorld.zip, 语言代码可以在ISO 639-1 codes中找到(two-letter ISO 639 language code)。
远程编译
远程编译需要在pro文件中如下声明ts qm,否则远程编译器找不到 ts和 qm 文件
OTHER_FILES += helloworld_en.ts helloworld_zh_CN.ts helloworld_en.qm helloworld_zh_CN.qm
参见Remote Compiler troubleshooting
相关文档
Internationalization with Qt
5. 有哪些聊天软件是国际化的
主要有MSN、ICQ、AIM、Paltalk、Skype。还有一些用的少的,像雅虎通
QQ也可以说是国际通用的,只要在国外下载QQ程序安装,一样可以和国内聊天。
6. 外国人都不用微信,QQ,现在用的是什么
国外的即时聊天工具还是很多的国内其实都是抄别人的,以前有Microsoft的MSN是即时通讯软件,Skype,ins,和其他的社交平台Facebook,推特等
7. 国际贸易中经常使用的即时通讯工具有哪些
最常用的: Skype,whatsapp
其他还有:viber,line, kakaotalk, wechat, facebook, twitter
8. 大陆能用的国际交友软件有什么
1、Skout
SkouT,基于地理位置的社交网,是一款LBS类社交网站,同时也是一款用于“交友与调情”的移动社交软件,是移动社交的先行者之一。用户可以在这里发布照片、Flirts Buzz(相当于微博)、免费聊天。
2、LinkedIn
LinkedIn(领英),全球职场社交平台,是一家面向商业客户的社交网络(SNS),成立于2002年12月并于2003年启动,于2011年5月20日在美上市,总部位于美国加利福尼亚州山景城。网站的目的是让注册用户维护他们在商业交往中认识并信任的联系人,俗称“人脉”。用户可以邀请他认识的人成为“关系”(Connections)圈的人。
3、Sweetalk
Sweetalk(甜言蜜语)是一款是提供多语言即时翻译的全球化社交APP。在全球180多个国家和地区建立了服务器并实现在线互联,无需VPN链接,同时支持Facebook、WeChat和QQ登录。在聊天中,发送的文字会即时翻译成他国语言,也可以选择将语音同声翻译成外文发送给对方,随时随地和身边或世界各地的外国人聊天,跨越语言障碍,让沟通变得更方便。
4、tumblr
Tumblr(/ˈtʌmblər/,中文名:汤博乐)成立于2007年,是目前全球最大的轻博客网站,也是轻博客网站的始祖。Tumblr(汤博乐)是一种介于传统博客和微博之间的全新媒体形态,既注重表达,又注重社交,而且注重个性化设置,成为当前最受年轻人欢迎的社交网站之一。雅虎公司董事会2013年5月19日决定,以11亿美元收购Tumblr。
5、pinterest
Pinterest采用的是瀑布流的形式展现图片内容,无需用户翻页,新的图片不断自动加载在页面底端,让用户不断的发现新的图片。
Pinterest堪称图片版的Twitter,网民可以将感兴趣的图片在Pinterest保存,其他网友可以关注,也可以转发图片。索尼等许多公司也在Pinterest建立了主页,用图片营销旗下的产品和服务。
有多家机构称,在移动互联网时代,网民在移动设备上更喜欢观看图片,Pinterest、Snapchat、Instagram等图片社交平台受到用户热捧,目前市场估值也明显高于其他“文本”社交网络。
9. 请问现在国际化的聊天工具有哪些(国际化)
msn
10. Java中如何实现程序国际化
1 Java国际化的思路
Java程序的国际化的思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件。资源文件是key-value对,每个资源文件中的key是不变的,但value则随不同国家、语言改变。
Java程序的国际化主要通过如下三个类完成:
Ø java.util.ResourceBundle:用于加载一个国家、语言资源包。
Ø java.util.Locale:用于封装一个特定的国家/区域、语言环境。
Ø java.text.MessageFormat:用于格式化带占位符的字符串。
为了实现程序的国际化,必须先提供程序所需要的资源文件。资源文件的内容是很多key-value对。其中key是程序使用的部分,而value则是程序界面的显示字符串。
资源文件的命名可以有如下三种形式:
Ø baseName _ language _country.properties
Ø baseName _language.properties
Ø baseName.properties
其中baseName是资源文件的基本名,用户可以自由定义。而language和country都不可随意变化,必须是Java所支持的语言和国家。
2 Java支持的语言和国家
事实上,Java不可能支持所有国家和语言,如需要获取Java所支持的语言和国家,可调用Locale类的getAvailableLocale方法获取,该方法返回一个Locale数组,该数组里包含了Java所支持的语言和国家。
下面的程序简单地示范了如何获取Java所支持的国家和语言:
public class LocaleList
{
public static void main(String[] args)
{
//返回Java所支持的全部国家和语言的数组
Locale[] localeList = Locale.getAvailableLocales();
//遍历数组的每个元素,依次获取所支持的国家和语言
for (int i = 0; i < localeList.length ; i++ )
{
//打印出所支持的国家和语言
System.out.println(localeList[i].getDisplayCountry() + "=" + locale
List[i].getCountry()+ " " + localeList[i].getDisplayLanguage()
+ "=" + localeList[i].getLanguage());
}
}
}
通过该程序,我们就可以获得Java程序所支持的国家/语言环境。
3 完成程序国际化
对于如下最简单的程序:
public class RawHello
{
public static void main(String[] args)
{
System.out.println("Hello World");
}
}
这个程序的执行结果也很简单:肯定是打印出简单的“Hello World”字符串,不管在哪里执行都不会有任何改变!为了让该程序支持国际化,则肯定不能让程序直接输出“Hello World”的字符串,这种写法直接输出一个字符串常量,永远不会有任何改变。为了让程序可以输出不同的字符串,此处绝不可使用该字符串常量。
为了让上面输出的字符串常量可以改变,我们将需要输出的各种字符串(不同国家/语言环境对应不同的字符串)定义在资源包中。
我们为上面程序提供如下两个文件:
第一个文件:mess_zh_CN.properties,该文件的内容为:
#资源文件的内容是key-value对。
hello=你好!
第二个文件:mess_en_US.properties,该文件的内容为:
#资源文件的内容是key-value对。
hello=Welcome You!
对于包含非西欧字符的资源文件,Java提供了一个工具来处理该文件:native2ascii,这个工具可以在%JAVA_HOME%/bin路径下找到。使用该工具的语法格式如下:
native2ascii 源资源文件 目的资源文件
如果我们在命令窗口输入如下指令:
#使用native2ascii命令处理mess_zh_CN.properties文件,生成aa.properties文件
native2ascii mess_zh_CN.properties aa.properties
上面的命令将生成一个aa.properties文件,该文件才是我们需要的资源文件,该文件看上去包含很多乱码,其实是非西欧字符的UNICODE编码方式,这完全正常。将该文件重命名为mess_zh_CN.properties即可。
我们看到这两份文件文件名的baseName是相同的:mess。前面已经介绍了资源文件的三种命名方式,其中baseName后面的国家、语言必须是Java所支持的国家、语言组合。
将上面的Java程序修改成如下形式:
public class Hello
{
public static void main(String[] args)
{
//取得系统默认的国家/语言环境
Locale myLocale = Locale.getDefault();
//根据指定国家/语言环境加载资源文件
ResourceBundle bundle = ResourceBundle.getBundle("mess" , myLocale);
//打印从资源文件中取得的消息
System.out.println(bundle.getString("hello"));
}
}
上面程序中的打印语句不再是直接打印“Hello World”字符串,而是打印了从资源包中读取的信息。如果在中文环境下运行该程序,将打印“你好!”;如果我们在“控制面板”将机器的语言环境设置成美国,然后再次运行该程序,将打印“Welcome You!”字符串。
通过上面的简单程序,我们可以体会到Java程序的国际化是多么简单!
从上面程序可以看出:如果我们希望程序完成国际化,只需要将不同国家/语言(Locale)的提示信息分别以不同文件存放。例如简体中文的语言资源文件就是Xxx_zh_CN.properties文件,而美国英语的语言资源文件就是Xxx_en_US.properties文件。
Java程序国际化的关键类是ResourceBundle,它有一个静态方法:getBundle(String baseName , Locale locale);该方法将根据Locale加载资源文件,而Locale封装了一个国家、语言,例如简体中文的环境可以用简体中文的Locale代表,美国英语的环境可以用美国英语的Locale代表。
从上面资源文件的命名中可以看出,不同语言、国家环境的资源文件的baseName是相同的,即baseName为mess的资源文件有很多个,不同国家、语言环境对应不同的资源文件。
例如通过如下代码来加载资源文件:
//根据指定国家/语言环境加载资源文件
ResourceBundle bundle = ResourceBundle.getBundle("mess" , myLocale);
上面代码将会加载baseName为mess的系列资源文件的其中之一,到底加载其中的哪个,则取决于myLocale,对于简体中文的Locale,则加载mess_zh_CN.properties文件。
一旦加载了该文件后,该资源文件的内容就是多个key-value对,程序就根据key来获取指定信息,例如获取key为hello的消息,该消息是“你好!”——这就是Java程序国际化的过程。
如果对于美国英语的Locale,则加载mess_en_US.properties,该文件中的key为hello的消息是“Welcome You!”。
Java程序国际化的关键类是ResourceBundle和Locale,ResourceBundle来根据不同Loacle加载语言资源文件,再根据指定key取得已加载语言资源文件中的字符串即可。