mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	This commit was originally automatically generated using `tools/lint --only=eslint --fix`. It was then modified by tabbott to contain only changes to a set of files that are unlikely to result in significant merge conflicts with any open pull request, excluding about 20 files. His plan is to merge the remaining changes with more precise care, potentially involving merging parts of conflicting pull requests before running the `eslint --fix` operation. Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Below, we register Zulip-specific extensions to the handlebars API.
 | 
						|
//
 | 
						|
// IMPORTANT: When adding a new handlebars helper, update the
 | 
						|
// knownHelpers array in the webpack config so that webpack knows your
 | 
						|
// helper is registered at runtime and don't try to require them when
 | 
						|
// bundling.
 | 
						|
 | 
						|
// We don't want to wait for DOM ready to register the Handlebars helpers
 | 
						|
// below. There's no need to, as they do not access the DOM.
 | 
						|
// Furthermore, waiting for DOM ready would introduce race conditions with
 | 
						|
// other DOM-ready callbacks that attempt to render templates.
 | 
						|
 | 
						|
Handlebars.registerHelper('plural', function (condition, one, other) {
 | 
						|
    return condition === 1 ? one : other;
 | 
						|
});
 | 
						|
 | 
						|
Handlebars.registerHelper({
 | 
						|
    eq: function (a, b) { return a === b; },
 | 
						|
    and: function () {
 | 
						|
        // last argument is Handlebars options
 | 
						|
        if (arguments.length < 2) {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        let i;
 | 
						|
        for (i = 0; i < arguments.length - 2; i += 1) {
 | 
						|
            if (!arguments[i] || Handlebars.Utils.isEmpty(arguments[i])) {
 | 
						|
                return arguments[i];
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return arguments[i];
 | 
						|
    },
 | 
						|
    or: function () {
 | 
						|
        // last argument is Handlebars options
 | 
						|
        if (arguments.length < 2) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        let i;
 | 
						|
        for (i = 0; i < arguments.length - 2; i += 1) {
 | 
						|
            if (arguments[i] && !Handlebars.Utils.isEmpty(arguments[i])) {
 | 
						|
                return arguments[i];
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return arguments[i];
 | 
						|
    },
 | 
						|
    not: function (a) { return !a || Handlebars.Utils.isEmpty(a); },
 | 
						|
});
 | 
						|
 | 
						|
Handlebars.registerHelper('t', function (i18n_key) {
 | 
						|
    // Marks a string for translation.
 | 
						|
    // Example usage:
 | 
						|
    //     {{t "some English text"}}
 | 
						|
    const result = i18n.t(i18n_key);
 | 
						|
    return new Handlebars.SafeString(result);
 | 
						|
});
 | 
						|
 | 
						|
Handlebars.registerHelper('tr', function (context, options) {
 | 
						|
    // Marks a block for translation.
 | 
						|
    // Example usage 1:
 | 
						|
    //     {{#tr context}}
 | 
						|
    //         <p>some English text</p>
 | 
						|
    //     {{/tr}}
 | 
						|
    //
 | 
						|
    // Example usage 2:
 | 
						|
    //     {{#tr context}}
 | 
						|
    //         <p>This __variable__ will get value from context</p>
 | 
						|
    //     {{/tr}}
 | 
						|
    //
 | 
						|
    // Notes:
 | 
						|
    //     1. `context` is very important. It can be `this` or an
 | 
						|
    //        object or key of the current context.
 | 
						|
    //     2. Use `__` instead of `{{` and `}}` to declare expressions
 | 
						|
    const result = i18n.t(options.fn(context), context);
 | 
						|
    return new Handlebars.SafeString(result);
 | 
						|
});
 | 
						|
 | 
						|
window.templates = exports;
 |