Re: [PHP-I18N] Intl ResourceBundle Class: No Fallback When Using Iteration

[email protected] (David Zülke) Tue, 17 Aug 2010 13:02:30 +0200
Newsgroups php.i18n
Message-ID <[email protected]>
--Apple-Mail-13-940556164
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

That seems to be a bug.

Among other things, resourcebundle_iterator_read calls =
resourcebundle_extract_value instead of resourcebundle_array_get (which =
handles fallbacks via resourcebundle_array_fetch).

I'm not sure if the fix is that simple though, as that only fixes =
getting of values, but the iterated range probably still doesn't include =
the fallback values. What would the expected behavior be for iterators? =
Should it iterate over all contents, including fallbacks? You sent =
another message to the list earlier which appears to be describing a =
similar, but different problem where values are null when iterating?

- David



On 16.08.2010, at 23:05, Joel Sahleen wrote:

> All,
>=20
> I am working on a large-scale internationalization project that use =
the intl extension. I am storing localized strings in ICU resource =
bundles and accessing them via the intl ResourceBundle class. Part of my =
project relies on the fallback functionality of the ResourceBundle =
class. I have put all the US English strings (base language) in the root =
bundle and created an empty bundle for en_US as suggested in the ICU =
guide. That way if any string is missing in the localized bundles, =
everything automatically falls back to US English.
>=20
> Fallback works great if I use the ResourceBundles get method, or if I =
use array access (e.g., $bundle->get(=91KEY=92) or $bundle[=91KEY=92]), =
but if I try to iterate over the en_US bundle=92s content with foreach, =
it returns a null result because the bundle is empty. Is there any way =
to support fallback when using iteration? It=92s not absolutely =
necessary for my project, but it seems that if the class is going to =
offer iteration support, that functionality should also support the =
fallback functionality.
>=20
> Thanks for the help.
>=20
> Joel Sahleen
> Software Engineer
> Adobe Systems


--Apple-Mail-13-940556164
Content-Disposition: attachment;
	filename=smime.p7s
Content-Type: application/pkcs7-signature;
	name=smime.p7s
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIKJjCCBMww
ggQ1oAMCAQICEByunWua9OYvIoqj2nRhbB4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA1MTAyODAwMDAwMFoXDTE1MTAyNzIzNTk1OVow
gd0xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
Z24gVHJ1c3QgTmV0d29yazE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBzOi8vd3d3LnZl
cmlzaWduLmNvbS9ycGEgKGMpMDUxHjAcBgNVBAsTFVBlcnNvbmEgTm90IFZhbGlkYXRlZDE3MDUG
A1UEAxMuVmVyaVNpZ24gQ2xhc3MgMSBJbmRpdmlkdWFsIFN1YnNjcmliZXIgQ0EgLSBHMjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMnfrOfq+PgDFMQAktXBfjbCPO98chXLwKuMPRyV
zm8eECw/AO2XJua2x+atQx0/pIdHR0w+VPhs+Mf8sZ69MHC8l7EDBeqV8a1AxUR6SwWi8mD81zpl
Yu//EHuiVrvFTnAt1qIfPO2wQuhejVchrKaZ2RHp0hoHwHRHQgv8xTTq/ea6JNEdCBU3otdzzwFB
L2OyOj++pRpu9MlKWz2VphW7NQIZ+dTvvI8OcXZZu0u2Ptb8Whb01g6J8kn+bAztFenZiHWcec5g
J925rXXOL3OVekA6hXVJsLjfaLyrzROChRFQo+A8C67AClPN1zBvhTJGG+RJEMJs4q8fef/btLUC
AwEAAaOCAYQwggGAMBIGA1UdEwEB/wQIMAYBAf8CAQAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcX
ATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMAsGA1UdDwQEAwIB
BjARBglghkgBhvhCAQEEBAMCAQYwLgYDVR0RBCcwJaQjMCExHzAdBgNVBAMTFlByaXZhdGVMYWJl
bDMtMjA0OC0xNTUwHQYDVR0OBBYEFBF9Xhl9PATfamzWoooaPzHYO5RSMDEGA1UdHwQqMCgwJqAk
oCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTEuY3JsMIGBBgNVHSMEejB4oWOkYTBfMQsw
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDEgUHVi
bGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHmCEQDNun9W8N/kvFT+IqyzcqpVMA0G
CSqGSIb3DQEBBQUAA4GBALEv2ZbhkqLugWDlyCog++FnLNYAmFOjAhvpkEv4GESfD0b3+qD+0x0Y
o9K/HOzWGZ9KTUP4yru+E4BJBd0hczNXwkJavvoAk7LmBDGRTl088HMFN2Prv4NZmP1m3umGMpqS
KTw6rlTaphJRsY/IytNHeObbpR6HBuPRFMDCIfa6MIIFUjCCBDqgAwIBAgIQU08jBMC62skd0LDQ
4jAMhjANBgkqhkiG9w0BAQUFADCB3TELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJ
bmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1
c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNTEeMBwGA1UECxMVUGVyc29u
YSBOb3QgVmFsaWRhdGVkMTcwNQYDVQQDEy5WZXJpU2lnbiBDbGFzcyAxIEluZGl2aWR1YWwgU3Vi
c2NyaWJlciBDQSAtIEcyMB4XDTA5MTAxNDAwMDAwMFoXDTEwMTAxNDIzNTk1OVowggEbMRcwFQYD
VQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazFGMEQG
A1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNvcnAuIGJ5IFJlZi4sTElB
Qi5MVEQoYyk5ODEeMBwGA1UECxMVUGVyc29uYSBOb3QgVmFsaWRhdGVkMTMwMQYDVQQLEypEaWdp
dGFsIElEIENsYXNzIDEgLSBOZXRzY2FwZSBGdWxsIFNlcnZpY2UxFTATBgNVBAMUDERhdmlkIFp1
ZWxrZTErMCkGCSqGSIb3DQEJARYcZGF2aWQuenVlbGtlQGJpdGV4dGVuZGVyLmNvbTCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ7R84sDCxHSgi/MuMO5B4kZOcxywXlXymfLPsAC2S1u
s9znieD8O3fMfq966LThTFmHgi9zToIESEvuAQkOB2xmrRxCxjRdL6wPPg36e80xWf0Lu3bqnONa
pyZ0CexQCzhQrqZ5o8QAk3frfasVxjJlEsXxpk/gL6DalmrGiHcyHa94xE2mqmvEMnc6i8QSN291
UNECR+/MEDeEMxe5ybH2qhcpipIQeIKvunlPmEJUUPeiLX/A2YsQVyEcCTllv9o1NoIMYCIaT/ca
rHazVTXtwvr5Pqsd5DiyxJF43Ki2kvJFx7HjHhLZ8HD3Hl+sj6v6tko+wtM/uHl+bwH/APECAwEA
AaOBzDCByTAJBgNVHRMEAjAAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHFwEwKjAoBggrBgEFBQcC
ARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYTALBgNVHQ8EBAMCBaAwHQYDVR0lBBYwFAYI
KwYBBQUHAwQGCCsGAQUFBwMCMEoGA1UdHwRDMEEwP6A9oDuGOWh0dHA6Ly9JbmRDMURpZ2l0YWxJ
RC1jcmwudmVyaXNpZ24uY29tL0luZEMxRGlnaXRhbElELmNybDANBgkqhkiG9w0BAQUFAAOCAQEA
LQIPq1mitFH4l0bXc5dvrxczawaXoBkWJU5biSeDJwe8hEZ6mhDL1phLlQV1RdJj4d9ZkNAQ7GSd
bcw2Ln+Frp82X9HCMg7CpSUiFbFW7R1oosCjrQCOKeDeARZvB5NKE+PaDsyMpaXY/eUNqY8xFd4t
AURtgIE/UzTKoRMMPNPPGyLqi/p5J6qR9/Ozl7V620SnDhn2rKeLeiXSP2Tg4k02OLhx4aVVqk+n
dnCQbn/IUh+Kn/NAYVwKOByp3dakH0M5A5zBUP/N3CgKTRMieH+Z4uwgg0yTbk3BtZVkqLoCbyzR
YJ+haPDAC390CFCTQxpHikQPLVJ/Otx4cb12UjGCBIswggSHAgEBMIHyMIHdMQswCQYDVQQGEwJV
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
cmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBh
IChjKTA1MR4wHAYDVQQLExVQZXJzb25hIE5vdCBWYWxpZGF0ZWQxNzA1BgNVBAMTLlZlcmlTaWdu
IENsYXNzIDEgSW5kaXZpZHVhbCBTdWJzY3JpYmVyIENBIC0gRzICEFNPIwTAutrJHdCw0OIwDIYw
CQYFKw4DAhoFAKCCAm0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcN
MTAwODE3MTEwMjMwWjAjBgkqhkiG9w0BCQQxFgQU7Wd3JvCPliRI521Pu0HfHSFOZgYwggEDBgkr
BgEEAYI3EAQxgfUwgfIwgd0xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEf
MB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0
IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDUxHjAcBgNVBAsTFVBlcnNvbmEgTm90
IFZhbGlkYXRlZDE3MDUGA1UEAxMuVmVyaVNpZ24gQ2xhc3MgMSBJbmRpdmlkdWFsIFN1YnNjcmli
ZXIgQ0EgLSBHMgIQU08jBMC62skd0LDQ4jAMhjCCAQUGCyqGSIb3DQEJEAILMYH1oIHyMIHdMQsw
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
dXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2ln
bi5jb20vcnBhIChjKTA1MR4wHAYDVQQLExVQZXJzb25hIE5vdCBWYWxpZGF0ZWQxNzA1BgNVBAMT
LlZlcmlTaWduIENsYXNzIDEgSW5kaXZpZHVhbCBTdWJzY3JpYmVyIENBIC0gRzICEFNPIwTAutrJ
HdCw0OIwDIYwDQYJKoZIhvcNAQEBBQAEggEAQ0w75KcJShQz1UW0Dvp/k2iYbKy6lB/m5DepSC0j
Zzivw5kjs46TvJHn84ye3nBrYIBL5E5RkvywexzVhYtBSpt0ksW7vBMRHqEnCDxSGWxxagr+NaJt
unu6OTD3ftwPdFPxH+uaGigcsrPJJdrX5B5fEmKVOBq4aOdMT0FQnfiyms6Ca14VYGxl2JjgaXVX
MlP6Aj9CuH3vPE+AFsbyR7m1881eOA2vIvzLxXCN1UCu0TWhO2J5TMlyoFhzotvHtejSXvPTmNZP
FZpa+UvRcCPSnVH/rpk3dz/EsCC1c3+wBZrCcDi07N1WOhrg1ZybPjzEBOkY7c9g36urwydsBQAA
AAAAAA==

--Apple-Mail-13-940556164--