Javascript 创建独立的coldfusion文件(cfml),用于比较文件并获取缺少的标签

Javascript 创建独立的coldfusion文件(cfml),用于比较文件并获取缺少的标签,javascript,coldfusion,cfml,Javascript,Coldfusion,Cfml,我正在使用,它有一些.properties扩展文件,用于标记和翻译web内容 在我们的应用程序中,我们可以有几个xxx.properties和其他xxx_yy.properties其中xxx是属性的名称,yy是语言翻译。没有yy的是默认语言 下面是一个默认属性文件的示例,其中包含西班牙语和法语翻译文件以及标签添加用户、编辑用户、删除用户: 用户属性 add_user = Add website user edit_user = Edit website user

我正在使用,它有一些
.properties
扩展文件,用于标记和翻译web内容

在我们的应用程序中,我们可以有几个
xxx.properties
和其他
xxx_yy.properties
其中
xxx
是属性的名称,
yy
是语言翻译。没有
yy
的是默认语言

下面是一个默认属性文件的示例,其中包含西班牙语和法语翻译文件以及标签
添加用户、编辑用户、删除用户

用户属性

    add_user    = Add website user
    edit_user   = Edit website user
    delete_user = Delete website user
    add_user    = Agregar usuario web
    edit_user   = Editar usuario web
    delete_user = Eliminar usuario web
    add_user    = Ajouter un utilisateur du site Web
    edit_user   = Modifier l utilisateur du site Web
    delete_user = Supprimer l utilisateur du site Web
用户属性

    add_user    = Add website user
    edit_user   = Edit website user
    delete_user = Delete website user
    add_user    = Agregar usuario web
    edit_user   = Editar usuario web
    delete_user = Eliminar usuario web
    add_user    = Ajouter un utilisateur du site Web
    edit_user   = Modifier l utilisateur du site Web
    delete_user = Supprimer l utilisateur du site Web
用户属性

    add_user    = Add website user
    edit_user   = Edit website user
    delete_user = Delete website user
    add_user    = Agregar usuario web
    edit_user   = Editar usuario web
    delete_user = Eliminar usuario web
    add_user    = Ajouter un utilisateur du site Web
    edit_user   = Modifier l utilisateur du site Web
    delete_user = Supprimer l utilisateur du site Web
我需要做的是创建一个独立的cfml文件,该文件检索应用程序上的所有
.properties
文件,并将每个默认.properties文件与其其他翻译文件进行比较,并显示所比较文件缺少的标签(如果存在)

到目前为止,我所能做的是检索查询中的所有属性文件,使用名称和路径,并打印每个属性文件

propertiesFiles = directoryList("/application/i18n/", true, "query", "*.properties", "Directory", "all");

<cfoutput query="propertiesFiles">
   #propertiesFiles.name &" "& propertiesFiles.Directory#
</cfoutput>
propertiesFiles=directoryList(“/application/i18n/”,true,“query”、“*.properties”、“Directory”、“all”);
#propertiesFiles.name&“”&propertiesFiles.Directory#
有人能告诉我如何使用coldfusion进行循环逻辑,并将默认文件的标签与他的翻译进行比较吗?或者告诉我一个简单的方法?也许嵌入javascript


提前感谢

将每个文件加载到结构中,以便所有名称-值对都已知

因此,对于每个文件,循环遍历一个结构上的所有键,以查看第二个结构中是否缺少这些键


也可以考虑将所有这些数据加载到数据库中。DB更擅长处理数据集。

循环函数是一种选择。有问题的文件看起来像是由cairraige返回分隔的一组行。然后,每一行看起来像一个由等号分隔的列表

此外,还有一个用户定义函数的在线库可供使用。它包括一个名为的函数,可以应用于这种情况

我的方法的第一步是编写一个名为
getLabels
的函数,返回每个文件中的标签列表。会的

  • 读取文件
  • 创建一个名为
    labels
    且值为空字符串的变量
  • 将结果变量视为chr(10)分隔的列表。循环浏览此列表,在每次迭代中,使用
    ListFirst(delimiter=“=”)获取每个标签,并将其附加到
    labels`变量
  • 返回
    标签
    变量
  • 下一步是使用此函数从文件
    user.properties
    获取标签。调用此变量
    AllLabels


    然后开始循环执行由
    directoryList
    命令创建的查询。使用
    getLabels
    函数从每个文件中获取标签,使用
    listCompare
    函数识别丢失的标签。

    这一切的哪一部分是标签?抱歉,丹,我给出的示例中的标签是添加用户、编辑用户、删除用户。我用信息更新了描述。虽然你可以自己滚动,但是已经有了。此外,文件命名约定是非标准的。i18n通常使用地区语言和国家代码,如“es”,而不是“sp”。例如<代码> SnimaMeIs.Stase(西班牙语)或<代码> SnimaMeMeSejes。属性(西班牙语-西班牙),这是一个属性文件格式,该语句被认为是字符串。我们不能将其拆分为结构键、值对。因为当你读文件时,所有的行都被认为是单行句。读取每一行,然后使用=作为列表定界符来获得关键字和短语值,即键=某个短语。