我有一个Qt4 CMake项目,我想将i18n的QM文件集成到输出二进制文件中.这些是我到目前为止生成TS和QM文件的规则:
set(myapp_TRANSLATIONS
i18n/myapp_de.ts
)
set(FILES_TO_TRANSLATE
${myapp_SRCS}
${myapp_MOC_HDRS}
)
QT4_CREATE_TRANSLATION(QM_FILES ${FILES_TO_TRANSLATE} ${myapp_TRANSLATIONS})
QT4_ADD_TRANSLATION(QM ${myapp_TRANSLATIONS})
Run Code Online (Sandbox Code Playgroud)
我尝试了以下操作将QM文件添加到可执行文件中:
add_executable(myapp ${myapp_SRCS} ${myapp_MOC_SRCS} ${myapp_RCC_SRCS} ${QM})
Run Code Online (Sandbox Code Playgroud)
这是main.cpp的初始化:
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);
QTranslator appTranslator;
appTranslator.load("myapp_" + QLocale::system().name());
app.installTranslator(&appTranslator);
Run Code Online (Sandbox Code Playgroud)
但是,strings mypp表明翻译不会进入二进制文件.
更新:我将每个qm文件添加到i18n/translations.qrc:
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/resources">
<file>myapp_de.qm</file>
<file> ... .qm</file>
</qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)
和使用
QT4_ADD_RESOURCES(myapp_QM_RCC_SRCS i18n/translations.qrc)
Run Code Online (Sandbox Code Playgroud)
并添加myapp_QM_RCC_SRCS到可执行的依赖项.
但是由于CMake执行了阴影构建(在源目录之外构建)但是解析了QRC文件以寻找相对于QRC文件的引用文件的依赖性(这很好的功能但是没有制定规则如何构建该位置的QM文件).QM文件位于${CMAKE_CURRENT_BINARY_DIR}(它们属于使用阴影构建的地方)但是期望它${CMAKE_CURRENT_SOURCE_DIR}(非生成的文件应该是 - 所以两个位置都是正确的,具体取决于具体情况).
假设我使用以下命令创建"用户"模型:
script/generate model User username:string
Run Code Online (Sandbox Code Playgroud)
这将创建user.rb文件以及迁移rb文件以创建Users表.现在,我想在我的用户模型中添加一个电子邮件列.最好的方法是什么?我是手动完成并手动编写迁移文件还是有快捷方式可以执行此操作?如果我手动编写迁移,是否必须以与上一个迁移脚本(前面有时间戳)相同的方式命名,以保证它在上一次迁移后运行?
我发现它pylint很有用,但我也发现它非常没有文档记录,输出结构很痛苦,缺乏直观的界面.
我想使用pylint,但它不断抽出一些荒谬的"常规"消息,例如C: 2: Line too long (137/80)等等.
如果我可以禁用这些,那么pylint对我来说会更有用.如何禁用这些"约定"消息?
我试图把disable-msg=C301在~/.pylintrc(它被加载,因为当我把有错误pylint抱怨),我的理解是基于pylint的包目录下运行此命令(文档中的"行太长"的消息,可以发现会对人好点):
$ grep"行太长"**/*.py checkers/format.py:'C0301':('行太长(%s /%s)',
但这disable-msg没有任何作用.我将convention使用该disable-msg-cat=命令禁用整个类别,但是没有任何迹象表明我可以找到convention该命令的类别标识符- 直观disable-message-cat=convention无效.
在这个问题上,我非常有必要指出一些方向.
谢谢.
布赖恩
我正在尝试做一个简单的CSS声明.但是,我上面有警告,不知道如何解决.我认为s |(类型)应该为我声明样式.
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
s|TextInput{
color:#313131;
}
</fx:Style>
<s:Panel width="600" height="480" skinClass="skins.CustomPanel">
<s:layout>
<s:VerticalLayout paddingTop="7"/>
</s:layout>
<s:TextInput text="TextInput CSS not working"/>
<mx:Form>
<mx:FormHeading label="Please Enter The Information"/>
<s:HGroup>
<mx:FormItem>
<s:Label text="Brand"/>
<s:TextInput id="brand" text="CSS not working" width="156"/>
</mx:FormItem>
</mx:form>
Run Code Online (Sandbox Code Playgroud) 我遇到过很多需要将值传递给另一个线程的情况,我发现我可以这样做,但我一直想知道它是如何工作的?
public void method() {
final EventHandler handle = someReference;
Thread thread = new Thread() {
public void run() {
handle.onEvent();
}
};
thread.start();
}
Run Code Online (Sandbox Code Playgroud)
编辑:只是意识到我的问题并没有完全指向我想知道的事情.它更"工作",而不是"为什么".
我正在尝试为自己验证Haskell中的运算符和函数优先级.例如,以下代码
list = map foo $ xs
Run Code Online (Sandbox Code Playgroud)
可以改写为
list = (map foo) $ (xs)
Run Code Online (Sandbox Code Playgroud)
并最终将成为
list = map foo xs
Run Code Online (Sandbox Code Playgroud)
我的问题曾经是,为什么第一个表述不会被重写为
list = (map foo $) xs
Run Code Online (Sandbox Code Playgroud)
因为函数优先级总是高于运算符优先级,但我认为我找到了答案:运算符根本不允许作为函数的参数(当然,除非用括号括起它们).这是正确的吗?如果是这样的话,我觉得很奇怪,在RWH中没有提到这个机制/规则或者学习一个Haskell,或者我搜索过的任何其他地方.因此,如果您知道规则所在的地方,请链接到该地址.
- 编辑:感谢您的快速解答.我认为我的困惑来自于认为运算符字母会以某种方式评估某些东西,这可能会被函数作为参数使用.它帮助我记住,一个中缀运算符可以机械地转换为前缀函数.对第一个配方这样做会产生
($) (map foo) (xs)
Run Code Online (Sandbox Code Playgroud)
毫无疑问,($)是消耗函数,并且由于两个公式是等价的,因此第一个公式中的$ literal不能被map使用.
以下代码在C#4.0中编译:
void Foo(params string[] parameters) { }
void Foo(string firstParameter, params string[] parameters) { }
Run Code Online (Sandbox Code Playgroud)
编译器如何知道您调用的是哪个重载?如果它不能,为什么代码仍然编译?
我刚刚开始阅读有关类别理论的内容,如果有人能够解释CS逆变/协方差和类别理论之间的联系,我将非常感激.一些示例类别会是什么(即它们的对象/态射是什么?)?提前致谢?
我正在尝试设置一些Google Maps Premier API操作,为此,我需要在我的网址上进行身份验证.如果您查看Signature示例,可以使用一些Python,C#和Java代码向您展示如何通过HMAC-SHA1进行签名.还有一个例子,我可以测试我的PHP实现.但是,我似乎无法让它发挥作用.
这是我的代码:
$key = "vNIXE0xscrmjlyV-12Nj_BvUPaw=";
$data = "/maps/api/geocode/json?address=New+York&sensor=false&client=clientID";
$my_sign = hash_hmac("sha1", $data, base64_decode($key));
$my_sign = base64_encode($my_sign);
$valid_sign = "KrU1TzVQM7Ur0i8i7K3huiw3MsA=";
Run Code Online (Sandbox Code Playgroud)
什么时候,我运行这个,我得到一个签名:
ZDRlNGMwZjIyMTA1MWM1Zjk0Nzc4M2NkYjlmNDQzNDBkYzk4NDI4Zg==
Run Code Online (Sandbox Code Playgroud)
哪个完全不匹配.
我想过的事情:
-和_对+和/也不起作用apache-flex ×1
c# ×1
cmake ×1
covariance ×1
css ×1
flex-spark ×1
function ×1
haskell ×1
hmacsha1 ×1
java ×1
localization ×1
overloading ×1
php ×1
pylint ×1
python ×1
qt4 ×1
ruby ×1
sybase ×1
translation ×1
type-theory ×1
types ×1