kdenlive
编码与资源

编码与资源

区域设置(Locale)处理

区域设置很重要,例如它决定了数字以用户习惯的格式呈现。 有些国家会把 12500.42 写作 12.000,42。

自 20.08 起,Kdenlive 遵循以下规则:

  • 解析数据时(无论由 Kdenlive 还是由 MLT 等其他库解析),使用 C 区域设置。 这对项目文件尤其重要。原因是:在程序之间传递数据时, 格式必须良好定义,且不取决于用户恰好身处何地。
  • 向用户呈现数据时,使用用户自己的区域设置。

MLT 使用由 setlocale() 设置的 C 区域设置,且该设置必须为 C。如果被设置为例如 hu_HU.utf-8(它使用 , 作为小数点分隔符), 那么在保存项目文件时属性会被转换为该格式,导致项目文件损坏。

在 Kdenlive 中,QLocale 只应在一种情况下使用:当数据展示给用户 或从用户处读取时。通常 Qt 已经处理了这一点。例如, QDoubleSpinBox 会以用户本地的数字格式呈现 double 值。

配置

具名设置存储在 kdenlivesettings.kcfg 中。要添加一个带默认值的新 设置,请在设置文件中添加一个条目,例如:

<entry name="logscale" type="Bool">
  <label>Use logarithmic scale</label>
  <default>true</default>
</entry>

随后可以按如下方式读取和写入该设置:

// Read
bool logScale = KdenliveSettings::logscale();
 
// Write
KdenliveSettings::setLogscale(true);

效果与转场(Effects and Transitions)

效果和转场存储在 data 目录的子目录中。 详细说明见此处。