我正在开发Kohana 3的管理应用程序,我显然正在使用很多形式.
应用程序需要多语言,我对如何管理我的消息文件,特别是如何访问它们感到困惑.
i18n是否支持语言文件夹中的不同文件夹和文件?
例如:
或者它是否支持语言文件中的数组?
i18n/fr.php
<?php defined('SYSPATH') or die('No direct script access.');
return array
(
'common_form' => array(
'error_type' => 'Error message in French.',
'error_type_2' => 'Other error message.',
)
)
Run Code Online (Sandbox Code Playgroud)
如果您可以这样做,在翻译邮件时如何访问这些字段/文件?
我不明白的另一件事是我怎么能以某种方式将我的翻译链接到messages文件夹中的错误消息.
这真让我困惑.另外,如何处理没有字段的错误(Validate类未检查的错误)?
谢谢.
请考虑以下代码
NSString *param_string @"1:3:6:10:15:22:28:30";
NSArray *params = [param_string componentsSeparatedByString:@":"];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterNoStyle];
NSMutableArray *convertedArray = [[NSMutableArray alloc] initWithCapacity:[params count]];
for(int i = 0; i < [params count]; i++){
[convertedArray insertObject:[formatter numberFromString:[params objectAtIndex:i] atIndex:i]];
}
Run Code Online (Sandbox Code Playgroud)
有没有更好,更有效的方法来实现这一目标?最初的param_string在实践中可能会更长,但我不希望params数组中有超过200个元素.
谢谢
我有以下Java代码,但List.indexOf()似乎做了几乎相同的事情(包括返回-1,如果没有找到.有没有办法传递indexOf()一个表达对象的想法的对象是不是0?
/**
* Find the first non-zero element in a List of Integers
* @param row List of Integers
* @return -1 if all zeros in row
* otherwise position of first non zero element
*/
public static int leading(List<Integer> row) {
for (int i = 0; i < row.size(); i++) {
if (row.get(i)!= 0) {
return i;
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
回复:ThorbjørnRavnAndersen:如果我将null传入IndexOf(),它将始终返回-1,因为我的列表总是包含整数.我想做一些像row.indexOf(Integer a where!a.equals(0))的东西.不确定是否可能
我需要一个数据结构来以1:1的关系存储string-int值对,并且能够从对应的任何一种方式查找.
我用Hashtable和String数组编写了一个类,并将数据存储了2次,并使用内置函数进行查找.
我的问题是,是否有更好的方法来实现这一目标?并且更好,我的意思是效率高,不存储数据2次,最好不要写大量的代码:P.
是否可以使用DocumentViewer(它的WPF控件)呈现PDF?
如果有可能那么如何?代码示例或链接到一些代码示例将不胜感激.谢谢你的回答.
第一个问题
请问,您能解释一下在MVC中如何实现最简单的ACL.
这是在Controller中使用Acl的第一种方法......
<?php
class MyController extends Controller {
public function myMethod() {
//It is just abstract code
$acl = new Acl();
$acl->setController('MyController');
$acl->setMethod('myMethod');
$acl->getRole();
if (!$acl->allowed()) die("You're not allowed to do it!");
...
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这是一个非常糟糕的方法,它的缺点是我们必须将Acl代码添加到每个控制器的方法中,但我们不需要任何其他依赖项!
接下来的方法是制作所有控制器的方法private并将ACL代码添加到控制器的__call方法中.
<?php
class MyController extends Controller {
private function myMethod() {
...
}
public function __call($name, $params) {
//It is just abstract code
$acl = new Acl();
$acl->setController(__CLASS__);
$acl->setMethod($name);
$acl->getRole();
if (!$acl->allowed()) die("You're not allowed to do it!"); …Run Code Online (Sandbox Code Playgroud) 首先,我理解90%的应用程序中性能差异完全不相关,但我只需要知道哪个是更快的构造.那......
目前在网上提供的信息令人困惑.很多人说foreach很糟糕,但从技术上来说它应该更快,因为它假设使用迭代器简化了数组遍历的编写.迭代器,再次假设更快,但在PHP中也显然死得很慢(或者这不是PHP的东西?).我在谈论数组函数:next()prev()reset()等等,如果它们是偶数函数而不是那些看起来像函数的PHP语言特性之一.
为了缩小这个范围:我在以超过1的步长遍历数组时没有兴趣(也没有负步骤,即反向迭代).我也对从任意点到任意点的遍历不感兴趣,只有0到长度.我也没有看到定期操作超过1000个键的数组,但我确实看到一个数组在应用程序的逻辑中被遍历了多次!另外,对于操作,主要是字符串操作和回声.
以下是一些参考站点:
http://www.phpbench.com/
http://www.php.lt/benchmark/phpbench.php
我到处听到的内容:
foreach很慢,因此for/ while更快foreach复制它迭代的数组; 为了使它更快你需要使用引用$key = array_keys($aHash); $size = sizeOf($key);
for ($i=0; $i < $size; $i++)foreach这是我的问题.我写了这个测试脚本:http://pastebin.com/1ZgK07US,无论我运行脚本多少次,我得到这样的东西:
foreach 1.1438131332397
foreach (using reference) 1.2919359207153
for 1.4262869358063
foreach (hash table) 1.5696921348572
for (hash table) 2.4778981208801
Run Code Online (Sandbox Code Playgroud)
简而言之:
foreach比foreach参考更快foreach 比...更快 forforeachfor比哈希表更快谁能解释一下?
PHP版本5.3.0
在Winforms表单中,我想在输入字段包含无效值时向用户提供可视提示.为此,我想将ForeColor输入字段标签的属性绑定到IsPropertyValid底层模型的(boolean)属性,以便标签在变为红色时变为红色IsPropertyValid == false.
我目前拥有的是绑定Format事件的事件处理程序:
Controls["dateOfBirthLabel"].DataBindings["ForeColor"].Format += convertBoolToColor;
// (dateOfBirthLabel.ForeColor is bound to a boolean IsDateOfBirthValid property.)
void convertBoolToColor(object sender, ConvertEventArgs e)
{
e.Value = (bool)e.Value ? Color.Black : Color.Red;
}
Run Code Online (Sandbox Code Playgroud)
如果我想在WPF中执行此操作,我想我会直接使用XAML中的绑定指定自定义值转换器(boolto Color).最重要的是,我不必通过其名称来引用特定控件.
我想用Winforms表单做同样的事情.理想情况下,我可以TypeConverter直接在Forms Designer中为特定绑定指定对象.这可能吗?