docs: function localeCycle(sources) {
    const pathnameWithoutLocale$ = sources.STATE.map(
      R.path(['routing', 'locationBeforeTransitions']),
    )
      .filter(d => d && d.pathname && !d.query.locale) // Case1
      .pluck('pathname')
      .distinctUntilChanged();
  
    const query$ = sources.STATE.map(
      R.path(['routing', 'locationBeforeTransitions', 'query']),
    )
      .filter(d => !!d)
      .filter(R.complement(R.isEmpty))
      .startWith({})
      .distinctUntilChanged(R.equals);
  
    const action$ = pathnameWithoutLocale$
      .combineLatest(query$, (pathname, query) => ({
        pathname,
        query: {
          locale: localeMapper(DEFAULT_LOCALE)(browserLocale),
          ...query,
        }, // Case2
      }))
      .map(location => push(location));
  
    return {
      ACTION: action$,
    };
  }