     var variables = [String: PluralEntry.VariableRule]()
 
     for variableKey in try StringsDict.variableKeysFromFormatKey(formatKey) {
-      let variable = try container.decode(PluralEntry.VariableRule.self, forKey: .make(key: variableKey))
+      let variable = try container.decode(PluralEntry.VariableRule.self, forKey: CodingKeys(key: variableKey))
       variables[variableKey] = variable
 
       // Nested FormatKey in Variable. Check if one of the strings (zero, one, ...) contains format keys,
       // decode them and add them to `variables`
       let childVariableKeys = Set(try variable.formatStrings.flatMap { try StringsDict.variableKeysFromFormatKey($0) })
       for variableKey in Array(childVariableKeys) {
-        variables[variableKey] = try container.decode(PluralEntry.VariableRule.self, forKey: .make(key: variableKey))
+        variables[variableKey] = try container.decode(PluralEntry.VariableRule.self, forKey: CodingKeys(key: variableKey))
       }
     }
     return variables

}

extension StringsDict.PluralEntry {
  /// A VariabeRule containes the actual localized plural strings for every possible plural case that
  /// is available in a specific locale. Since some locales only support a subset of plural forms,
  /// most of them are optional.
  struct VariableRule: Codable {

    init?(stringValue: String) {
      self.stringValue = stringValue
    }
    init(key: String) {
      self.stringValue = key
    }

    // fixed keys
    static let formatKey = CodingKeys(key: "NSStringLocalizedFormatKey")
    static let variableWidthRules = CodingKeys(key: "NSStringVariableWidthRuleType")
  }

  init(from coder: Decoder) throws {
