小编mii*_*kas的帖子

翻译Django数据库值的最佳/推荐方法

我正在试图找出在国际化我的Django应用程序时翻译实际数据库值(文本字符串,而不是日期格式或任何复杂的)的最佳方法.我能想到的最合乎逻辑的方法是:

  • 持有数据库的每一种语言(例如description_en,description_de,description_fr,...)或
  • 有不同的数据库,为每一种语言(例如schema_en,schema_fr,schema_de,...).

这些是最好的选择,还是我还缺少其他东西?谢谢.

database django translation internationalization

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

检测子进程何时等待输入

我正在编写一个Python程序,用于在Linux服务器上运行用户上传的任意(因此,在最坏的情况下,不安全,错误和崩溃)代码.抛开安全问题,我的目标是确定代码(可能是任何语言,编译或解释)是否写入了正确的内容stdout,stderr以及给定输入的其他文件是否输入到程序中stdin.在此之后,我需要向用户显示结果.

目前的解决方案

目前,我的解决办法是使用产卵子进程subprocess.Popen(...)与文件句柄stdout,stderrstdin.后面的文件stdin句柄包含了操作过程中的程序读取输入,并且该程序已终止后,将stdoutstderr文件的读取,并检查正确性.

问题

这种方法非常完美,但是当我显示结果时,我无法组合给定的输入和输出,因此输入将出现在与从终端运行程序时相同的位置.即类似的程序

print "Hello."
name = raw_input("Type your name: ")
print "Nice to meet you, %s!" % (name)
Run Code Online (Sandbox Code Playgroud)

stdout运行后,包含该程序的文件的内容将是:

Hello.
Type your name: 
Nice to meet you, Anonymous!
Run Code Online (Sandbox Code Playgroud)

鉴于内容包含该文件stdinAnonymous<LF>.所以,简而言之,对于给定的示例代码(以及,等效地,对于任何其他代码),我想实现如下结果:

Hello.
Type your name: Anonymous
Nice to meet you, Anonymous!
Run Code Online (Sandbox Code Playgroud)

因此,问题是检测程序何时等待输入.

尝试过的方法

我尝试了以下方法来解决问题:

Popen.communicate(...)

这允许父进程沿管道单独发送数据,但只能调用一次,因此不适用于具有多个输出和输入的程序 - 正如可以从文档中推断出来的那样.

直接从Popen.stdout …

python linux subprocess pty unbuffered-output

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

查找函数的最小值和最大值

我有一个功能,我想找到它的最大值和最小值.我的功能是:

def function(x, y):
    exp = (math.pow(x, 2) + math.pow(y, 2)) * -1
    return math.exp(exp) * math.cos(x * y) * math.sin(x * y)
Run Code Online (Sandbox Code Playgroud)

我有一个x [-1,1]和y [-1,1]的间隔.我想找到一种限制在这个间隔内的方法来发现这个函数的最大值和最小值.

python function max min

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

使用 Django i18n 和 gettext 进行单词变形

目前,我的 Django 项目的模板文件中有以下代码:

\n\n
{% blocktrans with type=content.get_type %}Edit this {{ type }}{% endblocktrans %}\n
Run Code Online (Sandbox Code Playgroud)\n\n

{{ type }}一个字符串,可以具有诸如"lecture"和之类的值"exercise"。这是在中的输出.po

\n\n
msgid "Edit this %(type)s"\nmsgstr ""\n
Run Code Online (Sandbox Code Playgroud)\n\n

这对于英语等不共轭对象的语言来说效果很好。对于这样做的语言,例如芬兰语,这会导致问题。

\n\n

在芬兰语中,名词“lecture”翻译为“luento”,在这种特定情况下所需的分词形式是共轭的“luento a ”。名词“exercise”翻译为“teht\xc3\xa4v\xc3\xa4”或“harjoitus”,其分词形式为“teht\xc3\xa4v\xc3\xa4 \xc3 \xa4 ”和“harjoitus ta ”。

\n\n

例如,有没有办法在这种情况下为单词添加特定的翻译?或者也许有某种基于条件的方式来填充msgstr

\n\n

显然以下内容不起作用,因为单词的共轭形式以不同的字符结尾:

\n\n
msgstr "Muokkaa t\xc3\xa4t\xc3\xa4 %(type)sa"\n
Run Code Online (Sandbox Code Playgroud)\n\n

(这将正确地产生“luentoa”,但错误地产生“teht\xc3\xa4v\xc3\xa4a”。)

\n

django gettext internationalization

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

在switch语句中的case标签中声明相同的变量

我想知道我们是否可以宣布下面的内容.我的要求是使用相同的变量但不同的结构.如果可以做到以下情况,你们可以帮助我吗?请建议是否还有其他选择.

switch(x)
{
  case 1:
    struct_1 *name = NULL;
    break;
  case 2:
    struct_2 *name = NULL;
    break;
  case 3:
    struct_3 *name = NULL;
    break;
  default:
}
Run Code Online (Sandbox Code Playgroud)

问候

c declaration switch-statement

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