csv_to_files.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import csv
  2. def csv_to_files (path):
  3. header = []
  4. with open(path, newline='') as csvfile:
  5. reader = csv.reader(csvfile, delimiter=',') #le csv, modifica delimitador se necessario
  6. header = next(reader) #le primeira linha
  7. header.pop(0) #retira primeiro elemento, pois eh vazio
  8. matrix_strings = [] #cria matriz que recebera as strings que irao para cada arquivo
  9. for row in reader: #como a primeira linha ja foi lida comeca a partir da segunda
  10. line = []
  11. for value in row[1:]: #primeiro elemento eh a chave que tem em todos os arquivos, entao pega a partir do segundo
  12. line.append (row[0]+"="+value) #concatena chave, "=" e traducao
  13. matrix_strings.append(line)
  14. #ao fim cria matriz com cada coluna contendo as chaves + traducoes de cada linguagem
  15. #ex coluna: en_US
  16. # loading=LOADING
  17. # title=Fractions
  18. # ...
  19. lang_num = 0
  20. for lang in header:
  21. #pega uma coluna por vez e insere no arquivo de linguagem no diretorio atual
  22. translations =''
  23. for line in matrix_strings:
  24. translations = translations+line[lang_num]+"\n"
  25. text_file = open(lang, "w") #abre o arquivo que sera criado
  26. text_file.write(translations) #escreve no arquivo
  27. text_file.close() #fecha o arquivo
  28. lang_num = lang_num + 1
  29. #importante perceber que todos os arquivos ficarao com a ultima linha vazia
  30. path = "lang.csv" #caminho para arquivo csv gerado anteriormente
  31. csv_to_files(path)