From dfe8e28eff60cdbda5ec8ef5c4c3439899ef5766 Mon Sep 17 00:00:00 2001
From: metasmile <cyrano905@gmail.com>
Date: Fri, 27 Nov 2015 12:31:55 +0900
Subject: [PATCH] python's default argument parser is excessively safe..

---
 strsync/strsync.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/strsync/strsync.py b/strsync/strsync.py
index b089d83..ddaa463 100644
--- a/strsync/strsync.py
+++ b/strsync/strsync.py
@@ -43,6 +43,7 @@ def main():
     __BASE_LANG__ = args['base_lang_name']
     __EXCLUDING_LANGS__ = args['excluding_lang_names'] or []
     __KEYS_FORCE_TRANSLATE__ = args['force_translate_keys']
+    __KEYS_FORCE_TRANSLATE_ALL__ = ('--force-translate-keys' in sys.argv or '-f' in sys.argv) and not __KEYS_FORCE_TRANSLATE__
     __KEYS_FOLLOW_BASE__ = args['following_base_keys'] or []
     __BASE_RESOUCE_DIR__ = None
 
@@ -169,7 +170,8 @@ def insert_or_translate(target_file, lc):
         for item in base_content:
             base_kv[item['key']] = item['value']
 
-        adding_keys = list(((set(base_kv.keys()) - set(target_kv.keys())) | (set(base_kv.keys()) & set(__KEYS_FORCE_TRANSLATE__ or base_kv.keys()))) - set(__KEYS_FOLLOW_BASE__))
+        force_adding_keys = base_kv.keys() if __KEYS_FORCE_TRANSLATE_ALL__ else __KEYS_FORCE_TRANSLATE__
+        adding_keys = list(((set(base_kv.keys()) - set(target_kv.keys())) | (set(base_kv.keys()) & set(force_adding_keys))) - set(__KEYS_FOLLOW_BASE__))
         removing_keys = list(set(target_kv.keys()) - set(base_kv.keys()))
         existing_keys = list(set(base_kv.keys()) - (set(adding_keys) | set(removing_keys)))
         updated_keys = []