小编Sea*_*ean的帖子

Gettext:消息ID是英文文本是一个好主意吗?

我们正准备将我们的PHP网站翻译成各种语言,PHP中的gettext支持看起来就像是要走的路.

我看到的所有教程都建议使用英文文本作为消息ID,即

gettext("你好!")

但这真的是个好主意吗?假设市场营销人员希望将文本更改为"你好,你们!".那么你不必更新所有语言文件,因为该字符串 - 实际上是消息ID - 已经改变了吗?

拥有某种通用ID(例如"hello.message")和英文翻译文件会更好吗?

php gettext internationalization

39
推荐指数
6
解决办法
6520
查看次数

如何让phpcs忽略PHP Storm中的一些文件?

我已经设置了PHP Storm以使用phpcs并在我违反风格时在IDE中显示我.

但是,我想为视图文件禁用它 - 它们通常包含与HTML混合的PHP,与样式指南不匹配,我不关心视图文件.

在选项中,我在phpcs设置中看到了排除文件的列表,但它只有删除文件或清除整个列表的按钮,但没有办法将文件添加到它.

我在某处错过了吗?

php phpstorm

14
推荐指数
2
解决办法
4660
查看次数

如何在PHP中自动设置用户的语言环境?

有没有一种简单的方法来解析用户的HTTP_ACCEPT_LANGUAGE并在PHP中设置语言环境?

我知道Zend框架有一个方法可以做到这一点,但我宁愿不安装整个框架只是为了使用那一点功能.

PEAR I18Nv2软件包处于测试阶段,近三年没有更改,所以如果可能的话我宁愿不使用它.

如果它可以判断服务器是否在Windows上运行,那也很好,因为Windows的语言环境字符串与世界其他地方不同......(德语是"deu"或"german"而不是"de". )

php locale internationalization

8
推荐指数
2
解决办法
2659
查看次数

ASP.NET MVC:其他人如何应用条件CSS类?

假设我有两种称为january和的CSS样式tuesday.我想将它们应用到我视图中的某些文本字段,具体取决于它是1月还是2月.

选项A:执行控制器中的逻辑,并将样式放在ViewData中.

在控制器中:

if( month == Month.January) 
  ViewBag.UserNameCssStyles = "january";
if( today == Day.Tuesday )
  ViewBag.UserNameCssStyles += " tuesday";
Run Code Online (Sandbox Code Playgroud)

在视图中:

@Html.TextBoxFor(model => model.UserName, new { @class = ViewBag.UserNameCssStyles }
Run Code Online (Sandbox Code Playgroud)

选项B:执行控制器中的逻辑并在视图中指定样式?

在控制器中:

ViewBag.IsJanuary = (month == Month.January);
ViewBag.IsTuesday = (today == Day.Tuesday);
Run Code Online (Sandbox Code Playgroud)

在视图中:

@if (ViewBag.IsJanuary && !ViewBag.IsTuesday) 
{
  @Html.TextBoxFor(model => model.UserName, new { @class = "january" })
}
else if (!ViewBag.IsJanuary && ViewBag.IsTuesday)
{
  @Html.TextBoxFor(model => model.UserName, new { @class = "tuesday" })
}
else if(ViewBag.IsJanuary && …
Run Code Online (Sandbox Code Playgroud)

css asp.net asp.net-mvc asp.net-mvc-3

8
推荐指数
1
解决办法
6539
查看次数

将PEAR包添加到Subversion存储库?

我正在开发一个使用PEAR包的项目.因为你永远不知道什么版本的PEAR包将在您的托管服务提供商进行安装(尤其是因为我需要一个修补程序已经应用到包中的一个),我希望把PEAR来源为我的项目直接进入SVN,所以其他开发人员可以立即拥有依赖项.

但是与PEAR相关的一切似乎都有绝对的目录!运行"pear config-create.pea.conf"来设置新的PEAR目录甚至失败并显示错误消息:

根目录必须是绝对路径

我检查了其他一些服务器上的pear配置文件,它们似乎也有绝对路径.

每当开发人员将其检出自己的机器,或者我们将其全部导出到服务器时,我们都不知道绝对路径是什么.

有没有办法设置它?

php svn pear

7
推荐指数
1
解决办法
863
查看次数

MySql - 用于选择第一选择,第二选择,第三选择等的聚合函数?

想象一下,我在名为"messages"的表中有以下数据:

message_id | language_id | message
------------------------------------
1            en            Hello
1            de            Hallo
1            es            Hola
2            en            Goodbye
2            es            Adios
Run Code Online (Sandbox Code Playgroud)

(请注意,我没有"Goodbye"的德语翻译.)

我想为说英语和德语但更喜欢德语的用户选择消息.

意思是,我想要一个看起来像这样的结果集:

message_id | language_id | message
------------------------------------
1            de            Hallo
2            en            Goodbye
Run Code Online (Sandbox Code Playgroud)

但是,嗯,它证明是棘手的.有任何想法吗?

mysql

7
推荐指数
1
解决办法
1525
查看次数

PHP的json_decode的深度参数不起作用

PHP的json_decode函数有一个"深度"参数,您可以在其中指定它将递归的深度.但是以下代码:

test = array(
    'name' => 'sean',
    'dob' => '12-20',
    'parents' => array(
        'father' => 'tommy',
        'mother' => 'darcy'
    )
);

foreach(range(1, 3) as $depth) {
    echo "-----------------\n depth: $depth\n";
    print_r(json_decode(json_encode($test), true, $depth));
}
Run Code Online (Sandbox Code Playgroud)

生成此输出:

-----------------
 depth: 1
-----------------
 depth: 2
-----------------
 depth: 3
Array
(
    [name] => sean
    [dob] => 12-20
    [parents] => Array
        (
            [father] => tommy
            [mother] => darcy
        )

)
Run Code Online (Sandbox Code Playgroud)

我期望的是深度为1以显示"名称"和"dob",深度为2以显示父母.我不明白为什么1或2的深度根本没有显示.

任何人都可以向我解释我不理解的东西吗?

php json

6
推荐指数
1
解决办法
7407
查看次数

是否有简单的3列纯CSS布局?

一个不需要以下内容:

  1. 依赖图像(即"人造柱")
  2. 某种奇怪或"黑客"专门针对IE
  3. 需要IE以怪癖模式运行
  4. 没有像三个DIV中的一个重叠其他人的陌生感(即"圣杯")
  5. 边距设置为高负数,使它们远离视图屏幕(再次"圣杯"布局)

我在CSS中找不到一个不依赖于上述之一的3列布局.并且依赖于上述之一似乎否定了使用CSS而不是表的许多优点.每次我想改变左栏的宽度时,我都不想扯掉Photoshop并调整图像大小.而且我不想拉出计算器来计算我的DIV必须在屏幕一侧有多少像素.

我应该提一下,我正在寻找一个高度相等的布局.

任何人?

编辑:我正在寻找100%的宽度,中心柱是液体.

编辑:我也希望指定左右列的宽度(以像素为单位).

编辑:背景可以是透明的,但我希望列之间的分界线一直向上和向下运行.

html css

5
推荐指数
2
解决办法
4095
查看次数

MySQL认为子查询是在不是时派生的!

EXPLAIN SELECT node_id 
          FROM node 
         WHERE person_id IN (SELECT person_id 
                               FROM user 
                              WHERE is_locked = 0);
Run Code Online (Sandbox Code Playgroud)

在MySql中的结果告诉我子查询是派生的.但事实并非如此!

(我知道这可以很容易地重写为JOIN,但我想知道为什么MySQL认为这是一个依赖子查询.)

mysql sql subquery

5
推荐指数
1
解决办法
212
查看次数

MySQL Workbench是否自动为外键创建索引?

当我在MySQL工作台中创建外键时,"索引"选项卡上会出现一个新条目,它与我刚刚创建的外键完全相同.

这实际上是外键,出于某种原因出现在"索引"选项卡上吗?或者MySQL Workbench是否有帮助并为我创建一个索引,知道我可能会选择该列,并给它(令人困惑)与外键相同的名称?

mysql mysql-workbench

4
推荐指数
1
解决办法
3419
查看次数

YUI的加载器的组合选项是否会破坏浏览器缓存?

因此,如果我使用YUI加载器(在Yahoo的服务器上)来提供JavaScript,并且我告诉它使用组合,那么浏览器可以在单个请求中下载几个YUI Widgets,这不会使它变得更加困难浏览器缓存JavaScript?

假设我有一个包含两个页面的站点,第一个使用YUI日历,对话框和树窗口小部件,浏览器将它们全部合并到YUI服务器的一个组合请求中.

下一页仅使用YUI日历和对话框,但不使用树.这是否意味着它现在在技术上是对雅虎服务器的不同请求,具有不同的查询字符串?这意味着这两个小部件会再次下载,即使它们只是在第一页上使用了吗?

在这种情况下,最好是对组合服务器发出一个请求,这将导致(在许多情况下)无法访问的JavaScript的单个请求?或者对可以缓存的单个YUI组件的几个请求?

(YSlow似乎没有提到这个问题.)

javascript yui

3
推荐指数
1
解决办法
589
查看次数

MySQL存储过程与多个选择

这是我的情景:

我有一个(让我们称之为)节点的表.每个主键只是"node_id".

我有一个维护节点层次结构的表,只有两列:parent_node_id和child_node_id.

层次结构在单独的表中维护,因为节点可以具有N:N关系.也就是说,一个节点可以有多个子节点和多个父节点.

如果我从一个节点开始并想要获得它的所有祖先(即层次结构中的所有东西),我可以做多次选择,或者在一个存储过程中完成所有操作.

任何对这个问题有实际经验的人都知道哪一个可能有最好的表现?我在线阅读了两种推荐方式.

php mysql apache performance stored-procedures

2
推荐指数
1
解决办法
1267
查看次数

如何通过Dart中的反射获取构造函数的参数?

我正在玩达特的镜子.我找不到任何方式反映一个类,并弄清楚它是否有一个构造函数,如果有的话,这个构造函数的参数是什么.

使用ClassMirror,看起来StatementMirror对象的"声明"集合将包含构造函数的条目,但是没有办法使用DeclarationMirror来判断它是否是构造函数,并且无法查看有关参数的信息.

使用MethodMirror对象的"instanceMembers"集合,看起来甚至不包含构造函数.我假设这是因为构造函数不是可以调用的正常方法,但是,由于MethodMirror具有"isConstructor"属性,因此它很奇怪.

有没有办法,给定一个对象类型,弄清楚它是否有一个构造函数,如果有的话,获取有关该构造函数的参数信息?

以下代码说明了问题:

import 'dart:mirrors';

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  string getNameAndAge() {
    return "${this.name} is ${this.age} years old";
  }

}

void main() {
  ClassMirror classMirror = reflectClass(Person);

  // This will show me the constructor, but a DeclarationMirror doesn't tell me
  // anything about the parameters.
  print("+ Declarations");
  classMirror.declarations.forEach((symbol, declarationMirror) {
    print(MirrorSystem.getName(symbol));
  });

  // This doesn't show me the constructor
  print("+ Members");
  classMirror.instanceMembers.forEach((symbol, methodMirror) {
    print(MirrorSystem.getName(symbol));
  });
}
Run Code Online (Sandbox Code Playgroud)

dart dart-mirrors

1
推荐指数
1
解决办法
375
查看次数