Commit 3274a55
authored
i18n-embed-fl: check args on MessageReference (#146)
* i18n-embed: retrieve fluent bundle with message
Add `FluentLanguageLoader::with_fluent_message_and_bundle()`. This
method functions like `with_fluent_message()`, but it also returns
the `FluentBundle` which owns the message.
This addition permits the closure to resolve `MessageReference`
and to retrieve other messages on the same bundle.
* fix(i18n-embed-fl): check args on MessageReference
The `fl!()` macro checks that all assigned arguments exist on
the message in question. But fluent messages can also refer to
other messages, and those messages can also have arguments.
```ftl
hello = Hello { to-you }
to-you = to you, {$name}!
```
Previous versions of the macro could not check arguments on
`MessageReference`s since it had no way to resolve them.
Bring the owning `FluentBundle` into scope so that message
references can be resolved. Some unnecessary generics on the
recursive functions are made concrete.
This patch requires an update to i18-embed for new API.1 parent bf603a7 commit 3274a55
File tree
4 files changed
+178
-26
lines changed- i18n-embed-fl
- i18n/en-US
- src
- tests
- i18n-embed/src
4 files changed
+178
-26
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
557 | 558 | | |
558 | 559 | | |
559 | 560 | | |
560 | | - | |
561 | | - | |
| 561 | + | |
| 562 | + | |
562 | 563 | | |
563 | 564 | | |
564 | 565 | | |
| |||
577 | 578 | | |
578 | 579 | | |
579 | 580 | | |
580 | | - | |
| 581 | + | |
581 | 582 | | |
582 | | - | |
| 583 | + | |
583 | 584 | | |
584 | | - | |
| 585 | + | |
585 | 586 | | |
586 | 587 | | |
587 | 588 | | |
| |||
721 | 722 | | |
722 | 723 | | |
723 | 724 | | |
724 | | - | |
| 725 | + | |
725 | 726 | | |
| 727 | + | |
726 | 728 | | |
727 | | - | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
728 | 732 | | |
729 | 733 | | |
730 | | - | |
| 734 | + | |
731 | 735 | | |
732 | 736 | | |
733 | 737 | | |
| |||
788 | 792 | | |
789 | 793 | | |
790 | 794 | | |
791 | | - | |
| 795 | + | |
792 | 796 | | |
| 797 | + | |
793 | 798 | | |
794 | | - | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
795 | 802 | | |
796 | 803 | | |
797 | | - | |
| 804 | + | |
798 | 805 | | |
799 | 806 | | |
800 | 807 | | |
| |||
854 | 861 | | |
855 | 862 | | |
856 | 863 | | |
857 | | - | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
858 | 871 | | |
859 | 872 | | |
860 | | - | |
| 873 | + | |
861 | 874 | | |
862 | 875 | | |
863 | 876 | | |
864 | 877 | | |
865 | | - | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
866 | 885 | | |
867 | 886 | | |
868 | | - | |
| 887 | + | |
869 | 888 | | |
870 | 889 | | |
871 | | - | |
| 890 | + | |
872 | 891 | | |
873 | 892 | | |
874 | | - | |
| 893 | + | |
875 | 894 | | |
876 | 895 | | |
877 | 896 | | |
878 | 897 | | |
879 | 898 | | |
880 | | - | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
881 | 906 | | |
882 | 907 | | |
883 | 908 | | |
884 | 909 | | |
885 | 910 | | |
886 | | - | |
| 911 | + | |
887 | 912 | | |
888 | 913 | | |
889 | 914 | | |
890 | 915 | | |
891 | 916 | | |
892 | 917 | | |
893 | | - | |
| 918 | + | |
894 | 919 | | |
895 | 920 | | |
896 | | - | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
897 | 943 | | |
898 | 944 | | |
899 | 945 | | |
900 | 946 | | |
901 | | - | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
902 | 954 | | |
903 | | - | |
| 955 | + | |
904 | 956 | | |
905 | 957 | | |
906 | 958 | | |
907 | | - | |
| 959 | + | |
908 | 960 | | |
909 | 961 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
342 | 342 | | |
343 | 343 | | |
344 | 344 | | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
345 | 379 | | |
346 | 380 | | |
347 | 381 | | |
| |||
0 commit comments