Commit Graph

316 Commits

Author SHA1 Message Date
Wang Ning
3784d499af Add translation for ota tool and partation tool 2020-03-25 21:44:33 +08:00
Angus Gratton
b4d97a8076 Merge branch 'feature/add_heap_info_per_task_example' into 'master'
Add Task Heap Tracking example

See merge request espressif/esp-idf!7750
2020-03-23 14:07:00 +08:00
Shubham Kulkarni
6e09056c25 example: Add Heap Task Tracking example 2020-03-19 15:07:41 +05:30
Angus Gratton
a9854f7085 Merge branch 'feature/rmt_clock_support_ref_tick' into 'master'
rmt: support ref tick && refactor unit test && re-enable unit test on ESP32-S2

Closes IDFGH-1715

See merge request espressif/esp-idf!7614
2020-03-06 15:03:52 +08:00
morris
0e4d82bc55 rmt: support REF_TICK as channel clock source
Closes https://github.com/espressif/esp-idf/pull/3952
2020-03-03 20:14:46 +08:00
Marius Vikhammer
c26a765a37 doc: remove uncessary .. only:: dirs
Removed some only directives that are no longer needed with include being processed correctly
2020-03-03 11:37:42 +08:00
Supreet Deshpande
073ba0a608 feat/secure_boot_v2: Adding docs for secure boot v2 ESP32-ECO3 2020-02-25 01:28:22 +05:30
Rusty Eddy
a81d231791 Added semi-colon to esp_event_loop_create(...)
Title sums it up.

Merges https://github.com/espressif/esp-idf/pull/4711
2020-02-18 12:30:38 +01:00
Mooli Tayer
311983eb55 Fix typo
Merges https://github.com/espressif/esp-idf/pull/4752
2020-02-18 12:30:29 +01:00
Angus Gratton
99cdddeb63 docs: Fix broken or incorrect link roles to IDF files & directories 2020-02-18 10:34:11 +11:00
suda-morris
75cadc2e41 console: simplify examples
1. simplify console examples
2. add "quit" command
3. support console command overwrite
4. add API reference
2020-02-07 20:15:06 +08:00
Angus Gratton
50324b505d docs: Note that the idf target formatting filters don't work on "included" documents 2020-02-07 16:37:45 +11:00
Angus Gratton
11fac8637a docs: Resolve doxygen & Sphinx warnings 2020-02-07 16:37:45 +11:00
Marius Vikhammer
268816649c Replace all TRM urls will generic template variable and remove duplicate sections
All references to TRM had the section duplicated for both targets using .. only:: , replaced these with a generic template url
2020-02-07 16:37:45 +11:00
Marius Vikhammer
d56ea52ea1 doc: EN doc update and fixed warnings 2020-02-07 16:37:43 +11:00
Marius Vikhammer
9352899d69 doc: Update English pages with generic target name 2020-02-07 16:37:43 +11:00
Angus Gratton
9399f04da0 docs: Add 'toctree filter' directive & filter out ESP32-only pages from S2 docs 2020-02-07 16:37:43 +11:00
Angus Gratton
37d5e2fba6 docs: Add "explicit only" directive & use only:: to block out some chip-specific parts of docs 2020-02-07 16:37:43 +11:00
Angus Gratton
e6211c7864 docs: add new top-level docs builder that builds docs for a single chip 2020-02-07 16:37:43 +11:00
Konstantin Kondrashov
739eb05bb9 esp32: add implementation of esp_timer based on TG0 LAC timer
Closes: IDF-979
2020-02-06 14:00:18 +08:00
KonstantinKondrashov
b49a657448 build: Add CONFIG_APP_PROJECT_VER to set the project version from Kconfig 2020-01-15 11:02:27 +00:00
morris
e1f9b283bc esp32s2: mac addr allocation 2020-01-14 15:19:38 +08:00
KonstantinKondrashov
c23549c04f docs: Add System time chapter and for sntp a description about using CONFIG_LWIP_SNTP_UPDATE_DELAY option
Closes: https://github.com/espressif/esp-idf/issues/4386
Closes: IDFGH-2237
Closes: IDF-1199
2020-01-10 14:49:07 +11:00
Felipe Neves
e5e8ee8912 docs: fix esp_pthread example syntax error 2020-01-03 11:21:35 -03:00
Felipe Neves
785abfeb82 docs: update esp_expresstion_with_stack code snippet to check shared stack and mutex allocation. 2019-12-20 13:30:30 -03:00
Felipe Neves
f0e82311a5 esp_expression_with_stack: fix wrong top of stack calculation plus documentation update 2019-12-20 13:23:47 -03:00
Felipe Neves
8bfb8e885e docs: update on expression with stack api usage regard the stack setup. 2019-12-20 13:18:13 -03:00
Felipe Neves
dfea4196a2 docs: added esp-expression-with-stack on documentation 2019-12-20 13:18:13 -03:00
Alexey Gerenkov
884717fb2f apptrace: Adds support for converting SystemView traces to JSON format 2019-12-04 18:04:07 +03:00
morris
57ef88a91f ethernet: add pm lock 2019-12-03 16:10:20 +08:00
Ivan Grokhotkov
477e66103c Merge branch 'feature/esp32s2beta_apptrace_port' into 'master'
esp32s2: Adds apptrace support

Closes IDF-510 and IDF-1032

See merge request espressif/esp-idf!5610
2019-11-22 05:33:35 +08:00
Renz Christian Bagaporo
df26ab13e2 test_utils: implement performance timer 2019-11-18 10:29:01 +08:00
Alexey Gerenkov
30ff7198b8 apptrace: Renames Kconfig options 2019-11-13 15:24:01 +03:00
Angus Gratton
ffdb57e04d Merge branch 'bugfix/http_client_message_complete_callback_invocation' into 'master'
Fix issue in http client regarding `message_complete` callback invocation

Closes IDFGH-2040

See merge request espressif/esp-idf!6413
2019-11-05 12:02:10 +08:00
Angus Gratton
8b48a8e72e Merge branch 'feature/efuse_example' into 'master'
examples: Add an example efuse API usage and the group writing mode

Closes IDF-773

See merge request espressif/esp-idf!5810
2019-11-05 10:13:21 +08:00
Angus Gratton
c5ef1cae04 Merge branch 'feature/perfmon' into 'master'
Performance monitor component

See merge request espressif/esp-idf!4705
2019-11-04 18:25:14 +08:00
Matt Phillips
a51fe89778 Update OTA Documentation to clarify grammar.
The sentence about CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE was worded strangely.
I updated it to better explain the functionality.

Closes https://github.com/espressif/esp-idf/pull/4228
2019-11-04 12:15:19 +05:30
KonstantinKondrashov
cf762d91c2 efuse: Add the batch writing mode
This mode should be used when burning several efuses at one time.
2019-10-30 15:43:40 +08:00
Angus Gratton
5db1f5fdfb docs: Add ESP-IDF support period policy 2019-10-18 18:25:20 +11:00
michael
37fdcc1eb5 esp_ringbuf: add documents for SendAcquire and SendComplete 2019-10-11 15:44:27 +08:00
Dmitry
a0730fec2a Performance monitor component. The component contains APIs, example and
documentation.
2019-08-23 11:20:12 +03:00
Darian Leung
75adefe437 docs: Alphbetically sort toctree
This commit sorts the entries of variuos toctrees
alphabetically. Indentation was also fixed. The order
of some toctrees were not modified if the existing
order had some form of suggested reading order.
2019-08-13 16:04:12 +08:00
Angus Gratton
0f27c38855 docs: Add notes about thread safety and using heap from ISRs
Closes https://github.com/espressif/esp-idf/issues/3768
2019-07-12 11:09:00 +10:00
Angus Gratton
222146845c docs: Make CMake build system default, mark GNU Make as legacy option
All `-cmake` suffixes are removed
Where a GNU Make option is renamed, the `-legacy` suffix is used
2019-07-09 14:32:26 +10:00
Angus Gratton
47bbb107a8 build system: Use CMake-based build system as default when describing commands 2019-07-08 17:31:27 +10:00
wangmengyang
50af558df9 update pm document with changes in bluetooth that supports automatic light sleep in case that external 32.768KHz crystal is used as the sleep clock
If bluetooth modem sleep is enabled and "External 32kHz crystal" is used as bluetooth sleep clock, the power management lock "ESP_PM_NO_LIGHT_SLEEP" in bluetooth is released for the periods of time when Bluetooth enters modem sleep. In this case automatic light sleep is allowed.
2019-07-04 07:14:02 +00:00
Angus Gratton
e6d229d301 Merge branch 'feature/ringbuffer_static_allocation' into 'master'
Ringbuffers: Add static allocation, refactor, and update API reference

Closes IDFGH-639 and IDFGH-902

See merge request idf/esp-idf!4426
2019-06-27 13:20:01 +08:00
Wang Fang
32954e5f90 Add Chinese translation to api-reference/system/power-management.rst
1. Add translation to docs/zh_CN/api-reference/system/power_management.rst
2. Add a link to docs/en/api-reference/system/power_management.rst
2019-06-26 20:42:56 +08:00
Darian Leung
8a597b865f esp_ringbuf: Add static allocation, refactor, and update API reference
This commit updates does the following:
    - xRingbufferCreateStatic() added to allow ringbuffers via to be statically
      allocated. Docs and unit tests update accordingly. Closes #3064

    - Fix doc typos, closes #3248. Updated API reference regarding to mention
      item size limits of no-split buffers when calling
      xRingbufferGetCurFreeSize() or xRingbufferGetMaxItemSize(), closes #3117.

    - Remove the following deprecated types/functions for v4.0
        - xRingbufferIsNextItemWrapped()
        - xRingbufferAddToQueueSetWrite()
        - xRingbufferRemoveFromQueueSetWrite()
2019-06-26 16:04:38 +08:00
Angus Gratton
5cb71b5213 Merge branch 'feature/add_doc_about_app_desc_t' into 'master'
docs: Add description about the app image

Closes IDF-597

See merge request idf/esp-idf!4912
2019-06-24 18:40:02 +08:00
Konstantin Kondrashov
12a7d39ed6 docs: Add description 2019-06-24 12:33:33 +08:00
Angus Gratton
78b7b137ad Merge branch 'feature/otatool_parttool_python_api' into 'master'
otatool, parttool Python API

See merge request idf/esp-idf!5077
2019-06-13 10:31:29 +08:00
Angus Gratton
eac356ef4a Merge branch 'feature/idf_version_header' into 'master'
esp_common: add esp_idf_version.h header to define IDF version

Closes IDF-253

See merge request idf/esp-idf!4596
2019-06-13 09:41:35 +08:00
Renz Christian Bagaporo
1de627e68a app_update: implement Python API for otatool 2019-06-11 13:17:14 +08:00
Kirill Chalov
588f059159 Doc/review power management 2019-05-29 12:59:52 +08:00
Roland Dobai
1ad2283641 Rename Kconfig options (components/bootloader) 2019-05-21 09:32:55 +02:00
Roland Dobai
0ae53691ba Rename Kconfig options (components/esp32) 2019-05-21 09:09:01 +02:00
Roland Dobai
bf626f2aba Rename Kconfig options (components/esp_event) 2019-05-21 09:09:01 +02:00
Ivan Grokhotkov
6ca07eca68 esp_common: add version definitions in code and build system
Closes https://github.com/espressif/esp-idf/issues/2482
Closes IDF-253
2019-05-20 13:14:56 +08:00
Ivan Grokhotkov
0bca9d20d8 Merge branch 'feature/esp_event_loop_library_compat_base' into 'master'
Implement Wi-Fi, Ethernet, IP event handling based on esp_event library

Closes IDF-37 and IDF-267

See merge request idf/esp-idf!3635
2019-04-12 13:54:18 +08:00
Kirill Chalov
a01ec59f74 Review log.rst and index.rst files in api-reference/system 2019-04-11 15:33:38 +08:00
Ivan Grokhotkov
6890ea09cd docs: add event handling API guide 2019-04-11 12:04:58 +08:00
Angus Gratton
8e91677701 Merge branch 'bugfix/bootloader_flash_crypt_cnt_ff' into 'master'
flash encryption: reduce FLASH_CRYPT_CNT bit width to 7 bits

See merge request idf/esp-idf!4642
2019-04-09 08:10:06 +08:00
Angus Gratton
4b4cd7fb51 efuse/flash encryption: Reduce FLASH_CRYPT_CNT to a 7 bit efuse field
8th bit is not used by hardware.

As reported https://esp32.com/viewtopic.php?f=2&t=7800&p=40895#p40894
2019-04-03 14:07:20 +11:00
Alexey Gerenkov
d2db2ef03c docs: Adds host-based heap tracing description 2019-04-01 19:31:45 +03:00
Ivan Grokhotkov
106dc05903 Merge branch 'feature/specify_includes_belonging_esp32' into 'master'
move esp32 chip specific includes to esp32/xxx.h

See merge request idf/esp-idf!4534
2019-03-21 18:34:08 +08:00
raldone01
fc880e2429 Fixed a small spelling mistake
Merges https://github.com/espressif/esp-idf/pull/3089
2019-03-21 15:08:11 +08:00
morris
956c25dedd move esp32 chip specific includes to esp32/xxx.h 2019-03-18 17:14:05 +08:00
Sachin Parekh
4de5ae7468 PM: I2S and I2C added in the Power Management docs
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-03-18 08:21:21 +00:00
Kirill Chalov
49cca9288f Update IDF getting started sections for make and cmake as well as IDF monitor… 2019-03-14 00:10:26 +08:00
Angus Gratton
af1ea9b1b9 efuse: When Virtual eFuses are enabled, seed the virtual values as part of startup code 2019-03-11 15:20:40 +11:00
krzychb
88b153fcf7 Fixed fancy quotes 2019-03-05 19:21:50 +01:00
krzychb
e243ee972d Updated documentation concerning 'PROJECT_VER' and 'PROJECT_NAME'.
Closes https://github.com/espressif/esp-idf/issues/3115.
2019-03-05 19:21:50 +01:00
Konstantin Kondrashov
509e1264b9 efuse: Fix to pass CI tests 2019-02-28 07:31:29 +00:00
Konstantin Kondrashov
1d7b901aeb efuse: Add MAX_BLK_LEN define for changing len of field
Added docs, improved efuse_table_gen.py, and minor fixes

Checking the generated files for compliance with the coding scheme.
2019-02-28 07:31:29 +00:00
Konstantin Kondrashov
95b6273c7c efuse: Fix docs and script 2019-02-28 07:31:29 +00:00
Konstantin Kondrashov
b8141f3ad8 efuse: Fix make/cmake build systems and docs 2019-02-28 07:31:29 +00:00
Konstantin Kondrashov
ba903e7618 docs: Add efuse 2019-02-28 07:31:29 +00:00
Konstantin Kondrashov
e916cf52a3 bootloader: Add support of anti-rollback
Added:
* set a secure version in app/bootloader.
* description anti-rollback to ota part
* emulate the secure_version write and read operations
* efuse_em partition.
* a description about a rollback for native_ota_example.

Closes: TW26335
2019-02-14 18:51:43 +08:00
Renz Christian Bagaporo
e9a765d0fd docs: add notes on handler dispatch order 2019-01-30 20:59:47 +08:00
Konstantin Kondrashov
dde1fd9b94 bootloader: Add support flags for rollback app
Added
* Set actual ota_seq if both ota are init or incorrect.
* Description of rollback
* UT tests

Closes TW15459
2018-12-11 11:54:21 +08:00
morris
8b7b5821c7 example: add nmea0183 parser example
Add NMEA0183 Parser example to illustrate how to use uart event driver together with esp event library to get GPS information.
2018-12-07 10:57:34 +08:00
Ivan Grokhotkov
37975c186d Merge branch 'feature/pthread_name_affinity_config' into 'master'
pthread: make affinity and task name configurable

See merge request idf/esp-idf!3878
2018-12-05 13:46:05 +08:00
Konstantin Kondrashov
3b9cb25fe1 esp32: Add firmware version to app
Added a new structure esp_app_desc_t. It has info about firmware:
version, secure_version, project_name, time/date build and IDF version.
Added the ability to add a custom structure with a description of the firmware.

The esp_app_desc_t is located in fixed place in start of ROM secotor. It is located after structures esp_image_header_t and esp_image_segment_header_t.

app_version is filed from PROJECT_VER variable (if set in custom make file) or PROJECT_PATH/version.txt or git repo (git describe).

Add API to get app_desc from partition.
2018-12-03 16:52:04 +08:00
Angus Gratton
a3a1cc080e docs: Add some more explanation about heap, memory types 2018-11-30 12:29:38 +11:00
Per Malmberg
71f57931bd #2743 - Implemented ability to core affinity and thread name for pthreads and thus also for std::thread. 2018-11-28 20:43:09 +01:00
Angus Gratton
a51d5706f6 Merge branch 'bugfix/minor_doc_fixes' into 'master'
Documentation fixes

See merge request idf/esp-idf!3529
2018-10-31 13:23:58 +08:00
Renz Christian Bagaporo
5a83347bec event: Implement event loop library 2018-10-26 13:14:19 +08:00
Ivan Grokhotkov
5a3c0d8adf esp_timer: document limitations on timeout/period
Closes https://github.com/espressif/esp-idf/issues/2572
Closes https://github.com/espressif/esp-idf/issues/2350
2018-10-26 12:42:38 +08:00
Jeroen Domburg
81e35a142a Spiram: Add option to reserve MMU banks; add himem API to make use of those banks 2018-10-15 14:32:58 +08:00
Angus Gratton
8721173109 doc: Replace :envvar: config links with :ref: 2018-09-19 17:27:48 +10:00
Mahavir Jain
ff81dc16e0 freertos: cleanup tick/idle hook functionality
If CONFIG_FREERTOS_LEGACY_HOOKS is kept enabled then defining
idle/tick hooks will be applications responsibility as was the
case earlier.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-09-17 17:05:17 +05:30
Angus Gratton
f9bed53ea2 Merge branch 'feature/task_wdt_add_timestamp' into 'master'
esp32/task_wdt: Add timestamp to message isr_twdt

See merge request idf/esp-idf!3053
2018-09-10 16:31:20 +08:00
Ivan Grokhotkov
6fbf585703 docs/sleep: mention new wakeup sources, use generated API reference 2018-09-06 15:42:34 +08:00
Ivan Grokhotkov
97b2281c49 Merge branch 'bugfix/can_driver_multiple_bugs' into 'master'
CAN: Add pm_lock, fix gpio bug, update docs

See merge request idf/esp-idf!3138
2018-09-04 20:34:06 +08:00
Konstantin Kondrashov
4fc84306a2 esp32/task_wdt: Add esp_task_wdt_isr_user_handler function
Added esp_task_wdt_isr_user_handler function to receive twdt events in
the user code.

Closes https://github.com/espressif/esp-idf/issues/2270
2018-09-03 14:31:20 +08:00
Darian Leung
dc3fa14a26 CAN: Add pm_lock, fix gpio bug, update docs
This commit does the following

- Add power management lock to CAN driver so that APB frequency does not change
whilst CAN driver is in use
- Fix incorrect flag in can_transmit()
- Refactor can_driver_install() and can_driver_uninstall() so that critical sections
are shorter
- Fix CAN gpio configuration bug on RX pin. Closes #2302
- Add docs about multiple ID configuration and fix example links
2018-09-01 02:46:05 +08:00
Jitin George
458b167f1a docs/en/security: Add documentation for signed apps without hardware secure boot feature 2018-08-29 17:05:34 +08:00
Ivan Grokhotkov
90f5456dba Merge branch 'feature/rtc_cpu_freq_config' into 'master'
soc/rtc: Refactoring, support CPU frequencies lower than XTAL

See merge request idf/esp-idf!2856
2018-08-22 11:32:08 +08:00
Ivan Grokhotkov
e3d76d13b4 docs: update power management section on esp_pm_configure 2018-08-21 13:02:46 +08:00
Ivan Grokhotkov
8403adf4e0 docs: add API reference section for esp_system.h 2018-08-20 16:49:20 +08:00
Angus Gratton
383a3f788d Merge branch 'doc/heap_tracing' into 'master'
heap docs: Fix some bad links & errors in the heap docs

See merge request idf/esp-idf!2942
2018-08-10 16:46:52 +08:00
Angus Gratton
c9cbc6b30c heap docs: Fix some bad links & errors in the heap docs
Also add a note about printf() sometimes causing on-demand allocations.
2018-08-10 15:54:58 +10:00
Jitin George
1fecdc3891 esp_https_ota: Add support for HTTPS based ota feature 2018-08-03 16:47:07 +05:30
Ivan Grokhotkov
10c2cddddf sleep: fix flushing UARTs when entering deep sleep
Since 94250e42a0, UART output is suspended when entering sleep mode
(deep or light sleep). This makes sense for light sleep, where sleep
normally takes small amount of time, and flushing the UART would add
a lot of latency. But this breaks existing behaviour for deep sleep,
where UART output was previously sent out before entering sleep mode.

Closes https://github.com/espressif/esp-idf/issues/2145
2018-07-04 12:11:25 +08:00
Ivan Grokhotkov
d9f8311b9d docs: add error codes reference 2018-06-15 15:49:24 +08:00
Angus Gratton
59ab2136e8 Merge branch 'doc/kconfig_item' into 'master'
doc: fix the level inconsistent issue in Kconfig document

See merge request idf/esp-idf!2460
2018-06-14 12:51:50 +08:00
Ivan Grokhotkov
2f5cd89833 examples: add esp_timer example 2018-06-07 11:59:36 +08:00
michael
3ba8461928 doc: fix the level inconsistent issue in Kconfig document 2018-06-05 10:36:18 +00:00
Angus Gratton
21e085d235 Merge branch 'feature/xRingBufferCanRead_pr1672' into 'master'
freeRTOS/Re-factor ring buffers and add xRingbufferCanRead, xRingbufferCanWrite

See merge request idf/esp-idf!2214
2018-05-23 15:09:40 +08:00
Darian Leung
4bfa30967f freeRTOS/Re-factor ring buffers
This fixes multiple bugs with ring buffers and re-factors the code. The public
API has not changed, however the underlying implementation have various private
functions have been changed. The following behavioral changes have been made

-   Size of ring buffers for No-Split/Allow-Split buffers will not be rounded
    up to the nearest 32-bit aligned size. This was done to simplify the
    implementation

-   Item size for No-Split/Allow-Split buffers will also be rounded up to the
    nearest 32-bit aligned size.

The following bugs have been fixed

-   In copyItemToRingbufAllowSplit(), when copying an item where the aligned
    size is smaller than the remaining length, the function does not consider
    the case where the true size of the item is less than 4 bytes.

-   The copy functions will automatically wrap around the write pointers when
    the remaining length of the buffer is not large enough to fit a header, but
    does not consider if wrapping around will cause an overlap with the read
    pointer. This will make a full buffer be mistaken for an empty buffer

closes #1711
-   xRingbufferSend() can get stuck in a infinite loop when the size of the
    free memory is larger than the needed_size, but too small to fit in the ring
    buffer due to alignment and extra overhead of wrapping around.

closes #1846
-   Fixed documentation with ring buffer queue set API

-   Adding and removing from queue set does not consider the case where the
    read/write semaphores actually hold a value.

The following functions have been deprecated
    - xRingbufferIsNextItemWrapped() due to lack of thread safety
    - xRingbufferAddToQueueSetWrite() and xRingbufferRemoveFromQueueSetWrite()
    as adding the queue sets only work under receive operations.

The following functions have been added
    - xRingbufferReceiveSplit() and xRingbufferReceiveSplitFromISR() as a thread
    safe way to receive from allow-split buffers
    - vRingbufferGetInfo()

Documentation for ring buffers has also been added.
2018-05-21 01:04:58 +00:00
Ivan Grokhotkov
45d3b1f4b1 docs: update information about automatic light sleep 2018-05-18 03:14:46 +00:00
Daniel Miller
9acebb08fe doc: spelling
Merges https://github.com/espressif/esp-idf/pull/1800
2018-04-09 12:28:21 +10:00
Ivan Grokhotkov
139d49894c Merge branch 'feature/deactivate_wakeup_trigger' into 'master'
esp32: Add deactivation of wake up trigger for different sources

See merge request idf/esp-idf!2079
2018-04-03 15:19:10 +08:00
Kedar Sovani
7a0cab0a5b pthread: Allow configuration of priority and stacksize
The expected usage is:
  esp_pthread_set_cfg(cfg);
  pthread_create()

If the inherit flag is set, then all subsequent threads forked by this
thread will also inherit this configuration. This avoids having to
change/prefix this for each and every pthread_create() call.
2018-03-20 18:06:32 +05:30
krzychb
097adc3a33 Moved files into separate folders per 'en' and 'zh_CN' language version and linked 'zh_CN' files back to 'en' files if translation is not yet available 2018-03-13 21:57:08 +01:00